NuGet 将 DLL 文件放在哪里?

2024-03-29

我正在尝试解决 NuGet 的问题源代码控制限制 https://stackoverflow.com/questions/7015149/multiperson-team-using-nuget-and-source-control.

为此,我需要更多地了解 NuGet 的工作原理。让我们举一个简单的例子。假设我有一个项目,我向其中添加了 AutoMapper。当我添加它时,DLL文件应该放在哪里?

我问是因为它似乎不一致。有时,参考会在“Packages”文件夹中查找 DLL 文件:

有时它会在调试构建输出文件夹中查找:

但在这两种情况下,AutoMapper 行packages.config文件是相同的:

第一个例子:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="AutoMapper" version="1.1.0.118" />
  <package id="CommonServiceLocator" version="1.0" />
  <package id="Unity" version="2.1.505.0" />
</packages>

第二个例子:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="NSubstitute" version="1.1.0.0" />
  <package id="AutoMapper" version="1.1.0.118" />
  <package id="CommonServiceLocator" version="1.0" />
  <package id="Unity" version="2.1.505.0" />
</packages>

那么是什么控制着它设置引用的位置呢?我如何让它只使用包位置?

(当它使用调试输出文件夹时,如果您为“发布”进行编译,这些引用将失败。)

沮丧的注:我必须承认,我发现 NuGet 是一个很酷的想法,但除了简单的情况外,它还没有准备好。 (我正在考虑恢复一个包含所有 DLL 文件的库文件夹。)

我不禁想知道我是否遗漏了一些东西,因为 NuGet 得到了如此广泛的采用。一定有某种方法可以让这项工作发挥作用......


.NET核心

在 .NET Core 中,NuGet 包现在默认存储在全局位置:

视窗:%userprofile%\.nuget\packages

(aka C:\Users\[User]\.nuget\packages)

Linux: ~/.nuget/packages

此外,packages.config已删除,现在使用存储引用<PackageReference>中的元素.csproj file.

您可以找到更多文档here https://learn.microsoft.com/en-us/nuget/consume-packages/managing-the-global-packages-and-cache-folders.


如果您找不到全球位置,则它可能已被更改。您可以使用以下命令发现它:

dotnet nuget locals global-packages --list

例如,如果您想将包位置更改为:e:\packages,您可以使用以下命令。

dotnet nuget config -Set globalPackagesFolder=e:\packages

我在安装 NuGet 包时遇到的任何问题都可以通过清除所有缓存位置来解决(除了全局位置之外,还有其他位置保存 NuGet 包),如下所示:

dotnet nuget locals all --clear
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NuGet 将 DLL 文件放在哪里? 的相关文章

  • 无法使用数据源配置向导在 Web 项目中添加数据源

    Problem 我想将报告 rdlc 添加到我的 Web 项目中 我需要报表使用对象数据源 而不是直接连接到数据库 我的问题是 当我运行 报告向导 或向报告添加新数据集时 数据源配置向导 only允许我使用数据库 然而 在图书馆项目中数据源
  • Moq - 是否可以在不使用 It.IsAny 的情况下设置模拟

    我一直使用 Moq 进行单元测试 有时我会嘲笑有很多参数的方法 想象一下这样的方法 public class WorkClient public void DoSomething string itemName int itemCount
  • 从 git 签出后 nuget dll 丢失

    I have a C solution containing different projects On those projects I have some normal nuget packages like Newtonsoft Js
  • 获取强类型的子属性名称

    通过将数据绑定对象到控件和网格 我讨厌属性名称如何成为魔术字符串 因此我创建了一个非常简单的方法 如下所示 public static string GetPropertyName
  • 如何检查 lib 文件?

    我有一个包含 390 个库的列表 需要将软件从实验室 CVI 移植到 Visual C 这些依赖关系快要了我的命 我无法导入所有这些 这太过分了 而且并非所有它们都是唯一的和 或根本可以加载 有没有一种简单的方法可以确定 lib 文件进行哪
  • c#.net 中委托事件的超级简单示例? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个非常简单的例子来了解自己对这些事件的了解 我觉得很难理解互联网或书籍上提供的示例 这是公开事
  • HttpUtility.ParseQueryString 不解码特殊字符

    Uri uri new Uri redirectionUrl NameValueCollection col HttpUtility ParseQueryString uri Query uri Query已经被解码 那么我有什么办法可以阻
  • 字符串到数组,按第三个字/列排序

    我有一个包含数字 单词和换行符的字符串 我将其拆分为一个数组 如果我跑Array Sort lines 它将按第 1 列对数组进行数字排序 Number 我怎样才能按第 3 列的字母顺序对数组进行排序 Color 注意 它们不是真正的列 只
  • C# - 挂钩现有 COM 对象

    假设我们有一个现有进程 或应用程序 它从 ocx 文件 例如 MyCOMLibrary ocx 调用 COM 对象 有没有办法编写一个 C 库来精确复制 ocx 文件 这样原始应用程序就可以调用您的 C 代码而不是原始 COM 对象 当然
  • 如何在 MSVS 2012+ 编辑器(和 .NET?)中使用正则表达式替换插入“\”+“n”

    在 Visual Studio 2013 的编辑器中 我理解它与 2012 非常相似 据称使用 NET 正则表达式 我无法获取替换字符串来插入反斜杠和 n 这可能吗 我想插入 n 在第一个 之后 在 C 程序的某些 但不是全部 行上 即使字
  • 当移动到控件的 ScrollBar 上时触发 MouseLeave 事件

    由于无法解决问题 我重新发布此问题 原始here https stackoverflow com questions 2024393 treeview mouseleave event fires when moves over scrol
  • static_cast 和对指针的引用

    谁能告诉我为什么这不能编译 struct A struct B public A int main B b A a b B b1 static cast
  • 使用VS2019创建WebService

    我想使用 Visual Studio 2019 使用 C 在现有 NET 项目中创建 WebService 在互联网上搜索 我能找到的只是旧 VS 版本的教程 如何创建它 使用 Visual Studio 2019 接收 POST 数据的最
  • WCF 和数据契约上的接口

    使用 svcutil 创建 WCF 代理时 是否还可以包含数据协定继承的接口 例如 public class SomeType ISometype public string Name get set public interface IS
  • C#中析构函数的使用?

    我对 C 中析构函数的使用有点困惑 据我所知我们不能打电话 根据我的愿望 析构函数会在垃圾收集器之前自动调用 以对类 对象 执行一些工作 所以我想问一下我们是否在 C 中使用析构函数 那么我们何时需要垃圾收集器 据我所知 析构函数可以处理内
  • 如何调试.NET Windows Service OnStart方法?

    我用 NET 编写的代码仅在作为 Windows 服务安装时才会失败 该故障甚至不允许服务启动 我不知道如何进入 OnStart 方法 如何 调试 Windows 服务应用程序 http msdn microsoft com en us l
  • 您认为 ASP.NET MVC 会与 ASP.NET Webforms 竞争吗?

    您认为 ASP NET MVC 会在 Microsoft Web 开发市场中占据重要份额吗 还是会占市场的 10 15 哦是的 它将让 Web 表单脱颖而出 我们已经看到了真正的 MVC 框架在 Java 世界中的价值 在 MS 世界中 这
  • Control.Invoke 是否泵送消息?

    Control Invoke 在被阻塞时是否继续在调用它的线程中泵送消息 系统 Windows 窗体 不会 Invoke 是阻塞的 整个线程将阻塞 直到对 Invoke 的调用返回 还有开始调用 http msdn microsoft co
  • 表单上的 KeyEvents 只能与 CTRL 结合使用

    Code Private Sub KeyHandling ByVal sender As Object ByVal e As System Windows Forms KeyEventArgs Handles Me KeyDown Sele
  • 如何重用具有稍微不同的 ProcessStartInfo 实例的 Process 实例?

    我有以下开始的代码robocopy https technet microsoft com en us library cc733145 aspx as a Process 我还需要进行数据库查询以确定每次需要复制哪些目录robocopy被

随机推荐