【发布时间】:2018-10-18 07:58:40
【问题描述】:
我正在尝试为执行以下操作的 dotnet core 2.0 项目设计构建脚本
- 清理输出目录
- 使用 -o bin\Publish 构建解决方案
- 使用 dotnet vstest 运行单元测试
- 使用 dotnet pack 创建 Nuget 包
因为我知道源代码已在步骤 1-3 中构建和测试,所以我不想为 nuget 包重新构建代码,所以我指定 --no-build 和 --no-restore
我遇到的困难是在创建包时,因为我没有构建并且输出目录设置为 bin\Publish - pack 命令正在查找 bin\Debug 目录中的项目。
有没有办法可以将 dotnet pack 命令设置为知道在哪里查找已编译的对象?
这是我的构建脚本的示例
dotnet clean ..\MySolution.sln -o bin/Publish/
dotnet build ..\MySolution.sln /p:Configuration=Release -o bin/Publish/
dotnet vstest ..\MySolution.UnitTests\bin\Publish\MySolution.UnitTests.dll
dotnet pack --no-build --no-restore ..\MySolution.ConsoleApp\MySolution.csproj -o bin\Publish\Nuget\
....
error : The file 'D:\MySolution.ConsoleApp\bin\Debug\netcoreapp2.0\MySolution.ConsoleApp.runtimeconfig.json' to be packed was not found on disk
根据Microsoft Docs on dotnet pack
"默认情况下,dotnet pack首先构建项目。如果你想 避免这种行为,传递 --no-build 选项。这通常很有用 在您知道代码的持续集成 (CI) 构建场景中 是以前建造的。”
所以我希望这是可能的,但我遗漏了一些明显的东西。任何帮助将不胜感激。
【问题讨论】:
标签: .net msbuild .net-core nuget dotnet-cli