2017-05-11 15 views
0

現在、VS2017を使用してフレームワーク4.6.2上に構築されたドットネットプロジェクトのNuGetツールを評価しています。私たちの目標は、私たちのソリューションの共通ライブラリを内部ネクサスリポジトリから引き出すリファレンス(Maven依存関係など)を参照することです。Nuget MsBuildインテグレーション - スナップショットとリリースのバージョン管理

私たちはスナップショットやリリースなどのmavenの概念に精通しています。 NuGetツールを使用して同じことを達成したいと思います。インターネット上の簡単な検索では、これはNugetではサポートされていないと言います。 NuGetでドットネットプロジェクトのために優雅な方法でそれを行うためのあらゆるポインタ?

この点に関するお手伝いがあります。ありがとう

答えて

0

新しいSDKベースのプロジェクトシステムを使用して、NuGetとMSBuildが統合されています。現在のところ、VS2017で、このためのプロジェクトテンプレートではありませんが、あなたは、.NET標準ライブラリを作成してに.csprojファイルに<TargetFramework>値を変更することができます。そして、あなたはあなたのライブラリーのバージョン番号を定義する必要があり

<TargetFramework>net462</TargetFramework> 

。これは、Versionプロパティーまたはを、組み立て時に組み合わされたVersionPrefixVersionSuffixプロパティーの組み合わせを設定することによって設定できます。 CI-szenariosためには、通常<PropertyGroup>要素の内側に、あなたの.csprojファイルにのみVersionPrefix値を設定したい:

<VersionPrefix>1.2.3</VersionPrefix> 

これはまた、溶液ディレクトリ内のDirectory.Build.propsファイル内に設定することができますが、単一の場所を持っています一箇所ですべてのプロジェクトのプロパティを設定するには:

<Project> 
    <PropertyGroup> 
    <VersionPrefix>1.2.3</VersionPrefix> 
    </PropertyGroup> 
</Project> 

またはローカルCIを通じて構築し、コマンドライン経由VersionSuffixプロパティを設定することができ、dotnet CLIのpackコマンドは、このための便利なオプションを提供しています:

dotnet pack -c Release --version-suffix SNAPSHOT 

開発者コマンドプロンプト経由のMSBuildのVSのバージョンを使用している場合また、同じ結果を達成することができます。

msbuild /t:Pack /p:Configuration=Release /p:VersionSuffix=SNAPSHOT 
が現在(VS 2017 15.2、.NET CLI 1.0。*)

、お互いを参照する複数のプロジェクトを持つときのバグです。依存バージョンは指定されたバージョン接尾辞で生成されません。回避策はあります。同じプロパティを使用して梱包する前に復元し、追加を実行します。あなたのCIシステムで

dotnet msbuild "/t:Pack;Restore" /p:Configuration=Release /p:VersionSuffix=SNAPSHOT 

あなたは一般的に1.2.3-ci-20170102ようなバージョンを生成するために、ビルド番号と接尾辞を上書きするか、単になどSNAPSHOT/PREVIEWを生成します。パッケージ。

msbuildはスクリプト作成が可能なので、csprojファイルを拡張して、いくつかの条件が満たされた場合に自動的にバージョンサフィックスを設定することもできます。誤ってデバッグビルドを公開しないように、常にデバッグビルドのサフィックスを生成してください。

<VersionSuffix Condition=" '$(Configuration)' != 'Release' ">SNAPSHOT</VersionSuffix> 
+0

ありがとうございます。私たちは、ネクサスレポの問題のために私たちのポップを拡​​張することはできません。一度ソートするとこの解決策を試してみます。 –

関連する問題