【问题标题】:Change nuget packages folder and use another NuGet.Config in Visual Studio更改 nuget 包文件夹并在 Visual Studio 中使用另一个 NuGet.Config
【发布时间】:2020-09-24 10:58:08
【问题描述】:

我想更改 nuget 包文件夹,但它不起作用。 我尝试了很多技巧,但没有奏效。 VS重启了很多次还是不行。

我的配置:

  • Visual Studio 社区 2019
  • Windows 10 1909 x64

我有一个 VS 解决方案文件夹

  • MyProjectSln\
    • 你好世界\
      • bin
      • nuget_packages
      • NuGet.Config

我希望 VS studio nuget 包管理器控制台使用“NuGet.Config”文件并将所有下载的包放在“nuget_packages”中

所以 nuget 包必须在 D:\MyProjetSln\HelloWorld\nuget_packages。

D:\MyProjetSln\HelloWorld\NuGet.Config 的内容示例:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <config>
        <add key="globalPackagesFolder" value=".\nuget_packages" />
        <!-- I have also tried with repositoryPath but not work -->
    </config>
</configuration>

xml 语法在我的情况下是正确的(在我的文件中)。

例如,当我从包管理器控制台执行命令“install-package NUnit”时,它会将下载的包放在 D:\MyProjectSln\packages\ 中,我不希望这样。

感谢您的帮助!

【问题讨论】:

  • 强制包定位的用例是什么?
  • 我只是想要一个不同的项目结构
  • "globalPackagesFolder 是 NuGet 包的全局缓存。这是 NuGet 将 NuGet 包下载到作为计算机缓存的位置。NuGet当此处存储的包过多时,可能会清除缓存。” - 听起来这不是您想要使用的。来源:stackoverflow.com/a/39920838/43846
  • 您在寻找RestorePackagesPath吗?

标签: c# visual-studio nuget


【解决方案1】:

只是正如this document所说,新建的nuget.config文件必须在项目文件夹的同级目录下,而不是放在项目文件夹内。

换句话说,它必须至少位于解决方案目录或更高级别的目录中。

注意:如果使用这种方式,会作用于同级目录下的所有项目和子目录下的所有项目。

所以您应该将新的nuget.config 文件放在D:\MyProjetSln 上。

然后将其内容修改为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <config>
         <add key="repositoryPath" value="HelloWorld\nuget_packages" />
    </config>
</configuration>

然后,关闭 VS,然后重新打开您的项目以启用该功能。

在我这边,

【讨论】:

  • 什么是“对等目录”?
  • 同级目录。
  • 但是如果你在同一个解决方案文件夹中有多个项目,例如你有相同的包但版本不同,你怎么办?例如:项目 HelloWorld 和项目 HelloSun 并且正如文档所说,我们不能在每个项目中都有 nuget.config ,对吗?
  • 据我所知,这是不可能的。其实nuget.config文件并没有你想象的那么灵活,不可能在每个项目中都定位。而且nuget.config无法识别msbuild的属性。而且它不能识别每个项目然后将nuget打包到项目文件夹中。所以我怕你得不到你想要的。
  • 如果您仍然想要此功能,我建议您可以在nuget githubour user voice forum 上报告此功能。
【解决方案2】:

在写这篇文章的时候,我想要的现在是不可能的。

也许以后会成为一个功能。

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 2020-07-11
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 2021-05-07
    • 2018-05-31
    相关资源
    最近更新 更多