ビルド、テスト、デプロイの各段階でCI/CDパイプラインをセットアップしたいと思います。 私が構築し、すでに構築されている..\BuildOutput\MyProject.dll
に対してテストを実行しますプロジェクトを再ビルドせずにmsbuildでnugetパッケージを作成するには?
msbuild src\MyProject.csproj /t:Restore
msbuild src\MyProject.csproj /p:Configuration=Release /p:OutputPath=../BuildOutput
次でビルド段階で私のプロジェクトをビルドすることができます。
msbuild tests\MyProject.Tests.csproj /t:Restore
msbuild tests\MyProject.Tests.csproj /p:Configuration=Release /p:OutputPath=../BuildOutput /p:BuildProjectReferences=false
vstest.console BuildOutput\MyProject.Tests.dll
これまでに動作するようです。
今、私はナゲットパッケージを生成したいと思います。
msbuild src\MyProject.csproj /t:Pack /p:Configuration=Release /p:OutputPath=../BuildOutput /p:VersionPrefix=1.2.3
をそして、それはBuildOutput
フォルダにMyProject.1.2.3.nupkg
を作成します。 私は呼び出すことができます。 しかし、それはそのプロジェクトを再ビルドします。
私はdotnet
cliと似たようなものを見ています。
dotnet pack --no-build
しかし、私のプロジェクトは、COMの参照を持っているので、私はdotnet
を使用することはできません。
は、私はまた、Nuget.exeに見えたが、私はMSBuildの構築スキップすることができる性質を持っていますnuget pack
Unable to cast object of type 'System.String' to type NuGet.Frameworks.NuGet.Frameworks1051960.NuGetFramework'.
を呼び出すときにエラーを投げているようですか?
。ビルド段階で私は自分のプロジェクトをビルドし、そのパッケージを作成します。展開するときは、ビルド段階で生成されたパッケージを発送するだけです。ビルド段階ではいつもパッケージを作成するのが少し冗長だと感じていますが、私はまだまったく使用できないパイプラインを好みます:)。 –