【发布时间】:2018-04-09 00:10:39
【问题描述】:
我想设置一个包含构建、测试和部署阶段的 CI/CD 管道。 我可以在构建阶段构建我的项目
msbuild src\MyProject.csproj /t:Restore
msbuild src\MyProject.csproj /p:Configuration=Release /p:OutputPath=../BuildOutput
接下来我将针对已经构建的..\BuildOutput\MyProject.dll 构建和运行测试。
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
到目前为止,它似乎有效。
现在我想生成 nuget 包。 我可以打电话:
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
但我不能使用dotnet,因为我的项目有一个 COM 引用。
我也查看了 Nuget.exe,但是当我调用 nuget pack 时它似乎会抛出错误
Unable to cast object of type 'System.String' to type NuGet.Frameworks.NuGet.Frameworks1051960.NuGetFramework'.
msbuild 是否有可以跳过构建的属性?
【问题讨论】:
-
它较新,但我偏爱这里介绍的内容:stackoverflow.com/a/53568518/3543437