【问题标题】:NuGet Configuration File for Solution VS2015 (NuGet 3.4+)解决方案 VS2015 (NuGet 3.4+) 的 NuGet 配置文件
【发布时间】:2016-11-22 16:18:10
【问题描述】:

好吧,这听起来可能是一个重复的问题,但就我的搜索而言,它不是。

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

我既不想使用 APPDATA 也不想使用 MACHINE。

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

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

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


更新问题:

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

我的问题/问题是通过解决方案而不是机器/appdata 配置包源 url,这是因为我使用的是包含企业库提要的私有包源 url!谢谢:)

详情:

我注意到包源 URL 存储在 NuGet.config 文件的 %APPDATA%\NuGet\NuGet.Config

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

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


来自 NuGet 文档:

“一个解决方案特定的 NuGet.Config 文件,位于解决方案的 .nuget 文件夹中。此文件中的设置仅适用于解决方案范围的包,并且仅在 NuGet 3.3 中受支持及更早版本NuGet 3.4 及更高版本会忽略它。”

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

【问题讨论】:

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


    【解决方案1】:

    好的,下面是通过解决方案配置它的步骤(经过测试并应用于 NuGet 3.4.4):

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

    2. 如果这是第一次并且您从未配置过私有 nuget 包源你应该在你的 VS2015 中进入 Tools > NuGet 包管理器 > 包管理器设置

    1. 按照我的描述填写新包源所需的信息 在下图中。

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

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

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


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

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

    【讨论】:

    • 这意味着“解决方案特定的 NuGet.Config 文件位于解决方案的 .nuget 文件夹中。此文件中的设置仅适用于解决方案范围的包,并且仅在 NuGet 3.3 和更早版本中受支持. NuGet 3.4 及更高版本将忽略它。”完全错误! thanx nuget doc 让我浪费时间!
    • @A77 它适用于 VS2017 15.5.5。不需要 .nuget 文件夹,也没有 NuGet 3.3 and earlier 限制。
    【解决方案2】:

    请检查项目中的 nuget 引用路径,在我的带有 NuGet 包管理器 3.5 的 Visual Studio 2015 Update 3 中,nuget 引用是来自解决方案文件夹中的 nuget 包文件夹的引用。

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

    那么当另一个用户在另一台机器上得到这个解决方案后,packages 文件夹也将被检出,该解决方案可以直接在另一台机器上使用。

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

    【讨论】:

    • 感谢您的帮助,我一直在阅读另一个指南中的 NuGet 简介,现在我已经做好了更好的准备来处理这个问题。我注意到使用 NuGet 3.4+ 版后,我不再需要 .nuget 文件夹了!我的问题/问题是通过解决方案而不是通过机器/appdata 配置包源 url,你明白吗?因为我使用的是包含企业库提要的私有包源 URL :) 谢谢!
    • 我注意到 Package Sources URL 存储在 NuGet.config 文件中 %APPDATA%\NuGet\NuGet.Config 。如何通过解决方案正确配置它?所以它很容易在公司业务中维护? (我的意思是我不需要每个用户在他们的机器上配置源)
    【解决方案3】:

    对于 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。

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多