【发布时间】:2019-03-05 18:05:29
【问题描述】:
我的项目有一个 nuget.config 并指定了一个 repositoryPath。我还指定了 globalPackagesFolder。
<config>
<add key="globalPackagesFolder" value="c:\p" />
<add key="repositoryPath" value="c:\p" />
</config>
现在我想在我的项目中安装第三方包。这个包正确地位于我指定的路径。
当我尝试安装另一个依赖于 System.Net.Http 且具有其他子依赖项的包时,nuget 无法安装此包,因为路径太长。
直接依赖项位于我从 nuget.config 指定的 repositoryPath 中。问题是,子依赖项不在此路径中。在此存储库中搜索文件未找到匹配项。
我在 nuget.config 中指定 repositoryPath 的唯一原因是我想将子依赖项移动到另一个文件夹,否则路径太长,nuget 无法安装包。这对我的同事来说不是问题。
如何改变这种行为?
如果这不可能,我的问题是否有其他解决方案? 一位同事建议缩短我的 Windows 登录,但这不是解决方案。我也无法缩短我们的 Teamcity 用户登录名。
我尝试安装的软件包是我公司开发的。因此,如果我必须更改包中的设置,这不是问题。
我尝试使用带有 Nuget 4.6.0 的 Visual Studio 2017 Pro 和 Enterprise 以及带有 Nuget 5.0.0 的 Visual Studio 2019 RC。 目标框架是 .NET Core 2.1
当我手动将包 System.Net.Http 添加到我的项目并安装包时,没有问题,但我宁愿不这样做,除非没有其他解决方案。
编辑: 为了澄清这种情况:如果我安装的包 A 依赖于包 B 并且 B 依赖于包 C,则包 A 在我指定的路径中,但 B 和 C 不在。我什至不知道包B和C在哪里。
【问题讨论】:
-
你的意思是
System.Net.Http的依赖在指定的路径中,但System.Net.Http的依赖不在那个路径?System.Net.Http的依赖关系是什么,或者所有依赖关系都不在该路径中?你的目标框架是什么? -
我想安装包 A。它依赖于 System.Net.Http。 System.Net.Http还有其他依赖,我安装不了,因为路径太长了。一位同事已经安装了所有东西。包 A 位于指定的 repositoryPath 下,但该路径中没有 System.Net.Http。这就是我的问题。我想要 repositoryPath 中的所有包,而不仅仅是顶级包。我想在此路径中包含子依赖项。好像它们在我的用户文件夹中的某个缓存中。我的目标框架是 .NET Core 2.1
-
感谢您的回复。要确认更多信息,您是否在 nuget.config 中设置了如下内容:
<add key="repositoryPath" value="SpecifiedPath " />?如果是,你可能做错了什么,这一套是针对 package.config 的,不是针对 .net core 项目的。但是为什么把包A设置在Specified Path里,那就奇怪了。 -
我在 nuget.config 的配置部分尝试了 repositoryPath 和 globalPackagesFolder。我没有 NUGET_PACKAGES 环境变量。
<add key="globalPackagesFolder" value="c:\p" />和<add key="repositoryPath" value="c:\p" />我们有核心和标准,所以我们在配置中都有这两个条目。
标签: visual-studio nuget