为什么Visual Studio在构建时没有注意到对packages.config的更改?

时间:2019-07-31 14:18:44

标签: visual-studio visual-c++ visual-studio-2017 nuget

我对Nuget不太熟悉,尤其是对于VC ++。我意识到我需要将Curl添加到我的可执行文件中,只是因为它使用Curl链接了一个库。 所以我编辑了.exe的package.config:

  <package id="Curl" version="7.59.0.0" targetFramework="native" />
  <package id="Curl.redist" version="7.59.0.0" targetFramework="native" />

但是再次我必须进入VS中的Nuget控制台才能首先更新/恢复内容。为什么这不是自动发生的?可以使它那样工作吗?

更糟糕的是,运行update-package告诉我不需要更新。我每次都必须重新安装它们。

1 个答案:

答案 0 :(得分:0)

  

为什么这不是自动发生的?有可能使其工作吗   这样吗?

zivkan 所述,手动编辑packages.config不是有效的工作流程,因此不会自动发生。而且,如果您必须通过手动adding and editing packages.config文件以这种方式使用nuget软件包,则可以right-click the solution in solution explorer并单击Restore Nuget Packages首先恢复软件包。

  

运行update-package告诉我不需要更新

对于Curl,在Nuget Gallery中,只有7.30.0.2(最新)版本取决于Curl.redist-7.30.0.2版本。我不确定在哪里可以找到7.59.0版本(似乎已经发布,请参见here),但是显然它没有发布到nuget.org。因此,当您尝试从nuget console或上述解决方案的Restore Nuget packages选项中的可用nuget源还原nuget程序包时,会得到no updates required或类似unable to find version 7.59.0 of package curl的错误。

要解决此问题,您可以转到Tools menu=>Nuget Package Manager=>Package Manager Settings=>Package Sources来配置查找7.59.0 version of Curl的源。然后,您可以使用Restore nuget packages选项轻松地为解决方案中的所有项目还原它们。或者,您可以尝试将版本7.59.0.0更改为nuget.org中完全可用的7.30.0.2