Mit dem neuen SDK-basierten Projektsystem sind NuGet und MSBuild integriert. Es gibt derzeit kein Projektvorlage für das in VS2017, aber Sie können eine .NET-Standard-Bibliothek erstellen und den <TargetFramework>
Wert in der .csproj
Datei ändern:
<TargetFramework>net462</TargetFramework>
Dann müssen Sie eine Versionsnummer für Ihre Bibliothek definieren . Dies kann durch Setzen einer Version
Eigenschaft ODER Einstellung einer Kombination aus VersionPrefix
und VersionSuffix
Eigenschaft, die während des Builds kombiniert werden, erfolgen. Für CI-Szenarien, möchten Sie in der Regel nur den VersionPrefix
Wert in Ihrer .csproj
Datei setzen, innerhalb eines <PropertyGroup>
Element:
<VersionPrefix>1.2.3</VersionPrefix>
Dies kann auch in einer Directory.Build.props
Datei in der Lösung Verzeichnis haben einen einzigen Ort eingestellt werden die Eigenschaft für alle Projekte an einem Ort zu setzen:
<Project>
<PropertyGroup>
<VersionPrefix>1.2.3</VersionPrefix>
</PropertyGroup>
</Project>
Wenn durch CI Aufbau oder lokal, können Sie die VersionSuffix
Eigenschaft über die Befehlszeile festgelegt, das Paket Befehl des dotnet
cli bietet eine Komfortoption für diese:
dotnet pack -c Release --version-suffix SNAPSHOT
Alternativ kann das gleiche Ergebnis erreicht werden, wenn die VS-Version von MSBuild über die Eingabeaufforderung Entwickler Befehl: (. VS 2017 15.2, .NET CLI 1,0 *)
msbuild /t:Pack /p:Configuration=Release /p:VersionSuffix=SNAPSHOT
Derzeit gibt ist ein Fehler, wenn mehrere Projekte sich gegenseitig referenzieren - die Abhängigkeitsversionen werden nicht mit dem angegebenen Versionssuffix erzeugt. Es gibt eine Lösung: Führen Sie eine zusätzliche Wiederherstellung vor dem Verpacken die gleiche Eigenschaft mit:
dotnet msbuild "/t:Pack;Restore" /p:Configuration=Release /p:VersionSuffix=SNAPSHOT
Auf Ihrem CI-System würde Sie in der Regel das Suffix mit einer Build-Nummer überschreiben eine Version wie 1.2.3-ci-20170102
zu erzeugen oder erzeugen nur SNAPSHOT
/PREVIEW
etc . Pakete.
Da msbuild Scripting ermöglicht, können Sie die Datei csproj
auch so erweitern, dass das Versionssuffix automatisch gesetzt wird, wenn bestimmte Bedingungen erfüllt sind - z. Generieren Sie immer ein Suffix für Debug-Builds, damit Sie nicht versehentlich einen Debug-Build veröffentlichen.
<VersionSuffix Condition=" '$(Configuration)' != 'Release' ">SNAPSHOT</VersionSuffix>
Dank Martin. Wir sind nicht in der Lage, unsere poc wegen Nexus Repo Problem zu verlängern. Werde diese Lösung einmal sortiert versuchen. –