2017-06-08 60 views
0

每次我通过VS中的Nuget扩展安装新包时,它都会检查目标包是否存在于静态位置(C:\ Users [me] \ Documents \代码\的NuGet)Nuget包管理器使用静态路径打包分辨率

enter image description here

这是一个问题,当我生成项目,我不能直接检查他们到TFS,而无需编辑的.csproj文件相对解析依赖。这些设置是逐个打包的,因此很繁琐。

但是,当我们的同事的Nuget/VS2015安装和我自己的,当他们通过添加新的包时,我没有看到区别。 Nuget,他们的经理在项目目录中添加一个'Packages'文件夹。他们的项目对Nuget解决方案具有相对路径。 enter image description here

是什么导致了这种行为,我该怎么做才能解决它? 既然我们都不知道更新了我们的Nuget设置,那么会导致像这样的配置副作用?

+0

这似乎是你的NuGet设置的问题,而不是NuGet本身。 NuGet有一个设置它恢复软件包的位置。这里引用:https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior。我相信如果你创建的恢复位置在你的项目中,VS会在csproj文件中使用项目相对路径 – Nanos

+0

@SurelyTheresABetterWay,这个问题的任何更新?你能从我的更新答案中得到任何有用的信息吗?如果没有,请让我知道免费,我会继续关注。 –

回答

1

是什么导致了这种行为,我该怎么做才能解决它?既然我们都不知道更新了我们的Nuget设置,那么会导致像这样的配置副作用?

您可以设置repositoryPath在NuGet.config,您可以在位于%APPDATA%\NuGet\NuGet.Config全局配置文件检查以下设置:

 <config> 
     <add key="repositoryPath" value="C:\Users\Documents\Code\Nuget" /> 
  </config> 

如果你找到它,请评论,或者你可以删除。

此外,如果您没有在全局配置中找到它,可以在您的解决方案下检查此NuGet.config。

注意:请在修改NuGet.config后重新启动Visual Studio。

更新:

可以解决方案文件夹下有以下设置添加一个NuGet.config:

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

enter image description here

使用此设置,会的NuGet下存储的包解决方案文件

+0

我已经检查过您提供的路径,以及官方Nuget文档中的所有可能的路径; https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior。没有一个配置文件指定了存储库路径。我还在VS中重新安装了Nuget Extension,并且行为仍然存在。 – SurelyTheresABetterWay

+0

@SurelyTheresABetterWay,不知道这个奇怪的问题的原因,但你可以尝试添加一个nuget。解决方案文件夹下的config以解决此问题。您可以参考更新答案中的详细信息。 –

+0

这让我走上了正确的道路。出于某种原因,我从未访问过该AppData位置。我能够找到有问题的配置文件,并删除导致问题的节点。然后,我不得不在解决方案XML中做一些额外的工作。我还使用你的Nuget.config解决方案来确保我有一个手动覆盖,如果将来会出现这种情况。非常感谢! – SurelyTheresABetterWay