gpt4 book ai didi

c# - 添加到解决方案时,NuGet 包将还原/安装到多个位置

转载 作者:行者123 更新时间:2023-11-30 22:59:39 25 4
gpt4 key购买 nike

我正在使用 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.For VS2017, .Net framework, ASP.Net MVC what is the default package install location?

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

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

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

2.How do I specify which feed a package comes from for CI/CD purposes?

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

3.Does NuGet look for packages already installed on my computer? 4.If yes, where does NuGet look for packages and where can I find its list of locations it looks for.

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

参见 Managing the global packages, cache, and temp folders了解更多详情。

希望这对您有所帮助。

关于c# - 添加到解决方案时,NuGet 包将还原/安装到多个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52067814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com