如何在没有 project.assets.json 或 nuget restore 的情况下使用 msbuild?

Eri*_*ric 5 msbuild nuget

我在一个解决方案中有一个 .Net Standard 项目,我希望 msbuild 在我们的构建服务器上构建它。如果我不先运行“nuget restore”,我会收到错误“project.assets.json' not found. Run a NuGet package restore”。我已经在解决方案级别的“包”文件夹中拥有所有必要的 NuGet 包。我想以某种方式表明 msbuild 应该只使用本地“包”文件夹中的文件,而不是尝试重新下载文件。我怎样才能做到这一点?谢谢你。

Mar*_*ich 5

.NET Standard 项目不使用packages解决方案中的文件夹。这是通过packages.config. 新方式 -PackageReference项目中的项目 - 使用用户主目录中的共享全局包文件夹。在project.assets.json需要构建机器上重新生成与解决路径即使没有软件包需要下载这个共享缓存。事实上,如果所有包都已经在机器上,NuGet 还原甚至可能不需要访问网络。


Eri*_*ric 5

我想出的最佳解决方案仍然涉及 NuGet 恢复,但我将本地包文件夹添加为 nuget.config 中的 NuGet 存储库之一,现在我不必访问任何远程存储库。这不是我想要的,但它让我进步。

  <packageSources>
    <add key="local" value=".\packages" />
  </packageSources>
Run Code Online (Sandbox Code Playgroud)