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

时间:2016-11-22 16:18:11

标签: visual-studio-2015 nuget nuget-package projects-and-solutions solution

好的,这可能听起来是一个重复的问题,但对于我的搜索却不是。

我一直在寻找一种在我的解决方案中配置特定nuget包源(url)的正确方法,该源自动生成与解决方案路径相对应的所有内容(.nuget文件夹和/或nuget配置文件)。

我不想使用APPDATA和MACHINE。

我想只使用解决方案目录,所以当存储库中的另一个用户获取解决方案时,它会正确安装所有内容(包括包文件夹上的nuget引用)。

我一直在阅读NuGet文档,看来,实现这一目标的方式并不简单,因为NuGet有不同的版本等等......

有人可以提供简约指南来实现这一目的吗? 感谢您的帮助!

更新了问题:

我注意到使用NuGet版本3.4+我不再需要 .nuget文件夹了!

我的问题/问题是按解决方案而不是通过machine / appdata配置包源网址,这是因为我使用的是包含公司库供稿的私有包源网址!谢谢:))

详细信息:

我注意到 Package Sources URL存储在%APPDATA%\ NuGet \ NuGet.Config 的NuGet.config文件中。

我如何通过解决方案正确配置?这样它很容易在公司业务中维持?

(我的意思是我不需要每个用户在他们的机器上配置源)

来自NuGet文档:

解决方案中.nuget文件夹中的特定于解决方案的NuGet.Config文件。此文件中的设置仅适用于解决方案范围的软件包,仅在 NuGet 3.3中受支持和之前的 NuGet 3.4及更高版本会被忽略。“

这是否意味着我无法单独为每个解决方案正确配置源?谢谢!

3 个答案:

答案 0 :(得分:8)

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

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

  2. 如果是第一次,你从未配置过私人nuget 包源你应该进入VS2015进入工具>的NuGet 包管理器>包管理器设置

  3. enter image description here

    1. 按照我的描述填写新包源所需的信息 如下图所示。
    2. enter image description here

      1. 然后将更新您的计算机(AppData)NuGet配置文件 在以下位置:%APPDATA%\ NuGet \ NuGet.Config
      2. enter image description here

        1. 接下来要做的就是将此NuGet.Config文件复制到您的 解决方案文件夹,如下图所示!
        2. enter image description here

          然后您会注意到包源仍然存在,即使您从AppData文件夹中删除它! (只需确保重新启动视觉工作室)

          注意:如果您将NuGet.Config文件保存在AppData中,VS本身将连接AppData中配置文件的内容和解决方案文件夹中的内容!

          注意2:现在您只需要在Git Repository / TFS中检入解决方案文件夹中指定的文件配置文件即可!

答案 1 :(得分:1)

请检查项目中的nuget引用路径,在使用NuGet Package Manager 3.5的Visual Studio 2015 Update 3中,nuget引用是来自解决方案文件夹中的nuget包文件夹的引用。 enter image description here

将此解决方案添加到存储库时,请确保已添加整个解决方案,并在解决方案中包含packages文件夹。

然后在另一个用户在另一台机器上获得此解决方案之后,还将检出packages文件夹,并且该解决方案可以直接在另一台机器上使用。

我不会在整个过程中使用APPDATA和MACHINE中的nuget包。

答案 2 :(得分: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>
    
  4. 适用于VS2017 15.5.5。

    结果:enter image description here