好的,这可能听起来是一个重复的问题,但对于我的搜索却不是。
我一直在寻找一种在我的解决方案中配置特定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.Config文件。此文件中的设置仅适用于解决方案范围的软件包,仅在 NuGet 3.3中受支持和之前的。 NuGet 3.4及更高版本会被忽略。“
这是否意味着我无法单独为每个解决方案正确配置源?谢谢!
答案 0 :(得分:8)
好的,以下是按解决方案配置它的步骤(已测试并应用于 NuGet 3.4.4 ):
创建/打开您的解决方案。
如果是第一次,你从未配置过私人nuget 包源你应该进入VS2015进入工具>的NuGet 包管理器>包管理器设置
答案 1 :(得分:1)
请检查项目中的nuget引用路径,在使用NuGet Package Manager 3.5的Visual Studio 2015 Update 3中,nuget引用是来自解决方案文件夹中的nuget包文件夹的引用。
将此解决方案添加到存储库时,请确保已添加整个解决方案,并在解决方案中包含packages文件夹。
然后在另一个用户在另一台机器上获得此解决方案之后,还将检出packages文件夹,并且该解决方案可以直接在另一台机器上使用。
我不会在整个过程中使用APPDATA和MACHINE中的nuget包。
答案 2 :(得分:0)
对于VS2017,
创建文件夹MyLocalPackages
将NuGet包文件放入其中。
在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。
结果: