解决方案 VS2015 的 NuGet 配置文件(NuGet 3.4+)

6
好的,这可能听起来是一个重复的问题,但根据我的搜索,它并不是。
我一直在寻找一种合适的方法来配置特定的NuGet软件包源(URL)在我的解决方案中,该解决方案可以自动生成所有内容(.nuget文件夹和/或NuGet配置文件)与解决方案路径相关。
我不想使用APPDATA也不想使用MACHINE。
我只想使用解决方案目录来完成所有操作,所以当来自存储库的另一个用户获取解决方案时,它会正确地安装所有东西(包括包文件夹中的NuGet引用)。
我一直在阅读NuGet文档,似乎实现这一目的的方式并不直观,由于NuGet的不同版本等原因......
有人能够提供一个简明指南,以实现此目的吗? 预先感谢您的帮助!
更新后的问题:
我注意到,对于NuGet Version 3.4以上,我不再需要.nuget文件夹!
我的问题/问题是通过解决方案而不是通过机器/appdata配置软件包源url,这是因为我正在使用包含企业库的馈源的私有包源url!谢谢:)
详细信息:
我注意到包源URL被存储在位于%APPDATA%\NuGet\NuGet.Config的NuGet.config文件中。
我怎样才能正确地配置这个解决方案呢?因此,在企业业务中易于维护?
(我的意思是我不需要让每个用户在他们的机器上配置源)
从NuGet文档中:
“位于解决方案中.nuget文件夹内的特定于解决方案的NuGet.Config文件。此文件中的设置仅适用于解决方案范围内的包,并且仅受支持的NuGet 3.3及早期版本。在NuGet 3.4及更高版本中,它被忽略。”
这是否意味着我无法为每个解决方案单独配置源?谢谢!
3个回答

8

好的,以下是按解决方案配置的步骤(已测试并适用于NuGet 3.4.4):

  1. 创建/打开您的解决方案。

  2. 如果这是第一次配置您的私有NuGet包源,请在VS2015中进入“工具”>“NuGet程序包管理器”>“程序包管理器设置”

enter image description here

  1. 按照下面图片中的描述填写新软件包源所需的信息。

enter image description here

  1. 然后你的机器(AppData)NuGet配置文件将会被更新,位于以下位置:%APPDATA%\NuGet\NuGet.Config

enter image description here

你接下来需要做的是将这个NuGet.Config文件复制到你的解决方案文件夹中,就像下面的图片一样!

enter image description here

然后你会注意到,即使你从AppData文件夹中删除了包源,它仍将存在!(只需确保重新启动Visual Studio)

注意:如果你把NuGet.Config文件保留在AppData中,Visual Studio本身会将AppData中的配置文件内容和解决方案文件夹中的内容连接起来!

注意2:现在你只需要将解决方案文件夹中指定的配置文件提交到Git存储库/TFS即可!


这意味着"A solution-specific NuGet.Config file located within a .nuget folder in the solution. Settings in this file apply only to solution-wide packages and is supported only in NuGet 3.3 and earlier. It is ignored for NuGet 3.4 and later."是完全错误的!感谢NuGet文档让我浪费了时间! - A77
1
@A77 在我的VS2017 15.5.5上可以工作。不需要.nuget文件夹,也没有“NuGet 3.3及更早版本”的限制。 - zwcloud

1
请检查您项目中的NuGet引用路径,在我的Visual Studio 2015 Update 3和NuGet Package Manager 3.5中,NuGet引用是从解决方案文件夹中的NuGet包文件夹引用的。 enter image description here 将此解决方案添加到存储库时,请确保已添加整个解决方案,并包括解决方案中的packages文件夹。
然后,在另一台计算机上获取此解决方案后,也会检出packages文件夹,可以直接在另一台计算机上使用该解决方案。
在整个过程中,我不使用APPDATA和MACHINE中的NuGet包。

感谢您的帮助,我已经阅读了另一份指南中的NuGet介绍,现在我准备更好地处理这个问题。我注意到使用NuGet版本3.4+时不再需要.nuget文件夹!我的问题/问题是通过解决方案而不是通过机器/appdata配置软件包源URL,您明白吗?因为我正在使用包含公司库的私有软件包源URL :) 谢谢! - TiagoM
我注意到Package Sources URL被存储在%APPDATA%\NuGet\NuGet.Config的NuGet.config文件中。我该如何正确地通过解决方案进行配置?这样在企业中就可以轻松维护了吗?(我的意思是我不需要每个用户在他们的机器上配置源) - TiagoM

0

对于VS2017,

  1. 创建一个名为 MyLocalPackages 的文件夹。

  2. 将 NuGet 包文件放入其中。

  3. 在 sln 文件旁边创建一个名为 NuGet.config 的文件。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
        <add key="Local Packages" value=".\MyLocalPackages" />
      </packageSources>
    </configuration>
    

适用于VS2017 15.5.5。

结果:输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接