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

时间:2017-11-06 21:01:00

标签: msbuild nuget

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

2 个答案:

答案 0 :(得分:4)

.NET标准项目不使用解决方案中的kill -9 <PID> 文件夹。这是&#34; old&#34;通过packages引用NuGet包的方法。新方法 - 项目中的packages.config项 - 使用用户主目录中的共享全局包文件夹。即使没有需要下载的软件包,也需要在构建计算机上重新生成PackageReference,并使用已解析的路径到此共享高速缓存。实际上,如果所有软件包都已在计算机上,则NuGet还原可能甚至不需要访问网络。

答案 1 :(得分:2)

我提出的最佳解决方案仍然涉及NuGet还原,但是我将本地包文件夹添加为nuget.config中的NuGet存储库之一,现在我不需要联系任何远程存储库。这不是我想要的,但它允许我进步。

  <packageSources>
    <add key="local" value=".\packages" />
  </packageSources>