是否可以覆盖Visual Studio项目文件中的Nuget提示路径?

时间:2016-08-17 21:22:00

标签: git visual-studio visual-studio-2015 nuget nuget-package-restore

我克隆了一个git存储库,其中包含一个引用Json.Net作为Nuget包的VS项目。此参考以下列形式出现:

<HintPath>..\..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>

我将克隆的存储库(以及我的所有其他git存储库)都安装到D:\Repos

正如您所看到的,我无法在上面安装3个目录。

使用环境变量(NUGET_PACKAGES)或packages.config文件似乎覆盖在包安装时难以烘焙到项目文件中的相对路径。

虽然可以通过在文件系统中更深入地嵌入这个特定的repo 3文件夹来解决这个确切的实例,但这不是解决问题的方法。

是否可以告诉Visual Studio忽略这些作者指定的HintPath以支持某种用户指定的路径?

1 个答案:

答案 0 :(得分:1)

如果您使用的是packages.config文件,则无法在添加NuGet包时禁用提示路径。

我会考虑使用解决方案旁边的NuGet.Config文件,并使用repositoryPath设置来定义软件包的位置。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="../MyPackages" />
  </config>
</configuration>

另一种选择是使用project.json文件,尽管这个文件在某些​​时候会消失。使用project.json文件意味着根本没有任何提示路径存储在.csproj文件中。程序集在构建时解析。