对于我的大多数项目,我有以下约定:

/src
    /Solution.sln
    /SolutionFolder
        /Project1
        /Project2
        /etc..
/lib
    /Moq
        moq.dll
        license.txt
    /Yui-Compressor
        yui.compressor.dll
/tools
    /ILMerge
        ilmerge.exe

您会注意到,我没有在源文件夹中保留外部库。我对使用NuGet也很感兴趣,但不希望在源文件夹内使用这些外部库。NuGet是否有一个设置来改变所有包加载到的目录?


当前回答

Visual Studio 2015上Nuget 3.2的解决方案是:

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

为父文件夹使用正斜杠。 将上述文件(nuget.config)保存在解决方案文件夹中。

参考资料可在此查阅

其他回答

Visual Studio 2019和Nuget 5.9

打开%AppData%\NuGet文件夹,打开现有的NuGet。配置文件。编辑repositoryPath键并设置新的目标。

<配置> <add key=“存储路径”值=“D:\”鸡块\ packages”- > < /配置>

在环境变量中编辑系统变量NUGET_PACKAGES并设置新的目标

重启VS.不需要放金币。配置文件在每个解决方案。

创建nuget。在解决方案文件所在目录下配置,包含以下内容:

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

'packages'将是还原所有包的文件夹。

关闭Visual studio解决方案并重新打开。

创建一个名为“nuget.config”的文件。 把那个文件加到我的解决方案文件夹里了

这对我不起作用:

<configuration>
  <config>
    <add key="repositoryPath" value="..\ExtLibs\Packages" />
  </config>
  ... 
</configuration>

这对我来说确实有用:

<?xml version="1.0" encoding="utf-8"?>
<settings>
  <repositoryPath>..\ExtLibs\Packages</repositoryPath>
</settings>

这些答案都不适合我(Nuget 2.8.6),因为缺少一些提示,我会尝试在这里添加它们,因为它可能对其他人有用。

阅读以下资料后: https://docs.nuget.org/consume/NuGet-Config-Settings https://github.com/NuGet/Home/issues/1346 看来

To make working Install-Package properly with different repositoryPath you need to use forward slashes, it's because they are using Uri object to parse location. Without $ on the begining it was still ignoring my settings. NuGet caches config file, so after modifications you need to reload solution/VS. I had also strange issue while using command of NuGet.exe to set this option, as it modified my global NuGet.exe under AppData\Roaming\NuGet and started to restore packages there (Since that file has higher priority, just guessing).

如。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <config>
    <add key="repositorypath" value="$/../../../Common/packages" />
  </config>
</configuration>

你也可以使用NuGet命令来确保语法是正确的,就像这样:

NuGet.exe config -Set repositoryPath=$/../../../Common/packages -ConfigFile NuGet.Config

Visual Studio 2015上Nuget 3.2的解决方案是:

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

为父文件夹使用正斜杠。 将上述文件(nuget.config)保存在解决方案文件夹中。

参考资料可在此查阅