Visual studio 提示路径正在破坏Nuget还原

Visual studio 提示路径正在破坏Nuget还原,visual-studio,csproj,Visual Studio,Csproj,我的解决方案中有3个项目;Api、试验和试验验收。当我从Git中取出解决方案时,Test和Test.Acceptance文件无法恢复 我已尝试使用以下代码添加.nuget\nuget.config\ <?xml version="1.0" encoding="utf-8"?> <configuration> <config> <add key="repositoryPath" value="C:\packages" /> </

我的解决方案中有3个项目;Api、试验和试验验收。当我从Git中取出解决方案时,Test和Test.Acceptance文件无法恢复

我已尝试使用以下代码添加
.nuget\nuget.config\

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="C:\packages" />
  </config>
</configuration>

虽然这似乎把包拉到了那个文件夹中,但实际的解决方案本身并没有注意配置


我没有在项目上运行
更新包-重新安装
,这是使csproj文件遵守新的
NuGet.config
的必要步骤吗?

您是对的,在少数情况下克隆项目时,
HintPath
会混淆其他用户,例如在用户的NuGet配置中指定的绝对存储库路径,而该路径不会被项目覆盖。只要每个人都通过全局配置或解决方案文件夹中的NuGet.config文件使用相同的
repositoryPath
,这应该不会有问题


如果您想支持各种各样的配置,我建议您离开packages.config,在VS 2017/nuget 4中使用新的
PackageReference
nuget机制,其中csproj文件本身列出了它需要的包,并且不包含任何提示路径。此外,全局包缓存将用于所有项目。请参阅有关集成的信息,特别是本节(请注意,当前发布的VS 2017版本完全支持该机制)

您是对的,
HintPath
在少数情况下克隆项目时会混淆其他用户,例如在用户的nuget配置中指定的绝对存储库路径未被项目覆盖。只要每个人都通过全局配置或解决方案文件夹中的NuGet.config文件使用相同的
repositoryPath
,这应该不会有问题


如果您想支持各种各样的配置,我建议您离开packages.config,在VS 2017/nuget 4中使用新的
PackageReference
nuget机制,其中csproj文件本身列出了它需要的包,并且不包含任何提示路径。此外,全局包缓存将用于所有项目。请参阅关于集成的部分,特别是该部分(请注意,该机制在当前发布的VS 2017版本中完全受支持)

您确定
packages.config
文件在项目中不起作用吗?“你看到的错误是什么?”马丁努里奇,我敢肯定。此解决方案在本地工作,但当推送到github并下载和解压缩时失败。错误是CS0246-表示找不到名称空间,这是因为找不到nuget包的引用。解压后如何还原解决方案?通过VS或
nuget.exe还原
值是多少?(还有:我们谈论的是哪个VS/nuget版本?@MartinUllrich我通过右键单击解决方案并选择nuget restore恢复了解决方案,然后运行了更新包-重新安装,它刚刚将我的HintPath重新打印到正确的位置。NuGet软件包管理器是v3.5。添加NuGet.config并运行
更新包-重新安装
后,HintPath将更改为新位置。这并不是什么好主意,但对于任何下载该项目的人来说,它都应该工作得更好。您确定项目中存在
packages.config
文件,但它不工作吗?“你看到的错误是什么?”马丁努里奇,我敢肯定。此解决方案在本地工作,但当推送到github并下载和解压缩时失败。错误是CS0246-表示找不到名称空间,这是因为找不到nuget包的引用。解压后如何还原解决方案?通过VS或
nuget.exe还原
值是多少?(还有:我们谈论的是哪个VS/nuget版本?@MartinUllrich我通过右键单击解决方案并选择nuget restore恢复了解决方案,然后运行了更新包-重新安装,它刚刚将我的HintPath重新打印到正确的位置。NuGet软件包管理器是v3.5。添加NuGet.config并运行
更新包-重新安装
后,HintPath将更改为新位置。这不是一个真正的想法,但它应该更好地为任何人下载项目。