csproj参考本地nuget包文件夹

时间:2018-11-16 18:42:24

标签: nuget csproj

我不得不将我的项目转移到Microsoft,以调查LiveUnitTesting错误,而我得到的代理说,有太多错误可以看,他不想打扰。

enter image description here

很清楚,我的csproj具有.. \ .. \ .. \ packages,它确实是nuget指向的C的根。

我不能在csproj中放置任何变量来告诉VS“仅使用本地nuget使用的任何位置”

像{NugetPath} \ Castle.Core.4.2.1 \ lib \ net45 \ Castle.Core.dll之类的吗?

1 个答案:

答案 0 :(得分:2)

TL; DR考虑migrating from packages.config to PackageReference

长版:

“通常”软件包在构建时会自动恢复,而我知道要禁用此软件包的唯一方法是nuget.config设置或Visual Studio设置。对于我来说,负责使用他人代码调查问题的代理为什么会禁用自动软件包还原是没有道理的,所以我只能假定您的存储库已禁用它,或者您的项目中存在一些不标准的东西导致它在代理的计算机上失败。模板中的新项目不存在此问题。

无论如何,这不是您的问题。您的问题的答案是否定的,没有内置的MSBuild属性指向NuGet恢复文件夹。

但是,将PackageReference用于NuGet依赖项而不是packages.config的项目,请勿修改csproj来向程序集文件添加路径。它是在构建时自动计算的,因此当人们在您克隆您的存储库的不同位置克隆您的存储库时,或者如果您在存储库中移动代码,则不需要修改csproj,只需运行一个nuget恢复。

我认为您在回购之外使用packages文件夹的原因是要与多个回购共享文件夹,从而节省磁盘空间。 PackageReference会自动执行此操作。它不再为每个仓库/解决方案创建一个程序包文件夹,并且直接使用全局程序包文件夹中的程序集进行构建。