防止`dotnet pack --no-build`触发构建并导致NETSDK1085

Chr*_*egg 7 msbuild .net-core

我希望在运行以下两个命令时,后者不会触发新构建:

  1. dotnet build solution.sln --configuration Release
  2. dotnet pack solution.sln --configuration Release --no-restore --no-build

但是,由于 .NET Core SDK 3.0.100,第二个命令对我来说总是失败并出现以下错误:

C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(133,5):
error NETSDK1085: The 'NoBuild' property was set to true but the 'Build' target was invoked.
Run Code Online (Sandbox Code Playgroud)

我想它无法构建是一件好事,因为我确实明确要求它不构建。但是为什么会触发构建--no-build

我实际上想要做的是一次性对所有构建的程序集进行代码签名(证书,而不是强命名),然后将它们全部打包到它们的 NuGet 包中:

  1. 为所有目标框架构建解决方案的所有项目
  2. 一次性对所有程序集进行代码签名(因此我不必为每个程序集输入密码)
  3. 将解决方案的所有项目打包为 NuGet 包

这也是为什么pack不触发新构建并覆盖已签名程序集很重要的原因。

因此我的问题是:

  • 首先是什么触发了构建?
  • 或者,我如何首先找出触发构建的原因?