繁体   English   中英

添加到解决方案后,NuGet 包将恢复/安装到多个位置

[英]When added to solution NuGet packages restore/install to multiple locations

我正在使用 Visual Studio 2017,构建一个.Net 框架(非核心)v4.6.1 ASP.Net MVC 项目,当我将包添加到我的解决方案中的单个项目时,这些包似乎正在恢复/安装到多个不同的位置。 我正在从多个源安装软件包,有些是我公司内部的,有些是公开的。

有些包位于我的解决方案根目录,而其他包似乎位于 %userprofile%.nuget\\packages\\

甚至安装了一个软件包,其提示路径与两个软件包位于完全不同的位置。 该软件包已安装在那里,但我不知道为什么它没有安装到我认为解决方案的本地软件包文件夹中。

我不确定这些问题是否正确,但这些是我现在要回答的问题:

  1. 对于 VS2017、.Net 框架、ASP.Net MVC,默认包安装位置是什么?
  2. 出于 CI/CD 目的,我如何指定包来自哪个提要?
  3. NuGet 是否会查找已安装在我的计算机上的软件包?
  4. 如果是,NuGet 在哪里查找包以及在哪里可以找到它查找的位置列表。

谢谢!

1.对于VS2017、.Net框架、ASP.Net MVC默认包安装位置是什么?

这取决于您使用的包管理方法。 如果你使用package.config ,默认包安装位置是解决方案根目录,如果你使用PackageReference ,默认包安装位置是%userprofile%.nuget\\packages\\ 这就是为什么您将包添加到解决方案中的单个项目的原因,这些包似乎正在恢复/安装到多个不同的位置。 您可以卸载并编辑您的项目,检查项目文件.csproj ,您会发现以下内容:

  <ItemGroup>
    <PackageReference Include="xxxxx">
      <Version>x.x.x</Version>
    </PackageReference>
  </ItemGroup>

要解决此问题,您可以接受 Lex 的建议。 如果要统一,请做出选择并更改文件。 您可以卸载那些使用PackageReference (或 package.config)的包,然后更改 nuget 设置(Tools->Options->NuGet Package Manager->General-> Default package management format ->Packages.config),然后重新安装这些包,确保它们使用统一的形式。

2.如何指定包来自哪个提要用于 CI/CD 目的?

你不能做这样的事情,你也不需要做这些事情。 我们知道,当我们从多个提要安装 nuget 包时,所有包都会下载到本地主机,Visual Studio 会在本地使用这些包,Nuget 并不关心它来自哪个提要。

3.NuGet 会查找我电脑上已经安装的包吗? 4.如果是,NuGet 在哪里查找包以及在哪里可以找到它查找的位置列表。

是的,您可以使用命令行nuget locals all -list来查找其位置列表。

有关更多详细信息请参阅管理全局包、缓存和临时文件夹

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM