NuGet 打包和引用 dll

2024-03-24

背景:我有两个程序集,称为“A”和“B”。 “A”引用了“B”。“A”还引用了一些其他 dll(Microsoft.Enterprise Library.Data 和 Microsoft Enterprise Library.Common ),我认为这些 dll 应该打包在 nupkg 中。

我相信我的 nupkg 包应该包含来自“A”、“B”和两个“Microsoft Enterprise”程序集的程序集输出,这样当有人安装我的程序包时,它将为他们提供对程序集“A”和其他三个程序集的直接引用程序集将可用(但不直接引用,以便其应用程序能够运行。打包非引用 dll 的正确方法是什么?

尝试#1:将所有必需的 dll 打包到 \net35 文件夹中根据有关“参考”的 NuGet 文档 http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Dependencies_in_version_2.0_and_aboveelement “如果省略此元素,则应用通常的行为,即引用 lib 文件夹中的每个程序集。”

因此,我假设通过使用此元素,它将仅包含指定为引用的程序集。如果我也使用“文件”元素,情况似乎并非如此<file src=*.dll" target="lib\net35" />。如果我有一个像这样的元素将所有 dll 复制到包中,则会导致实现此包的程序集引用 \net35 目录中的所有程序集。这不是我想做的。我期望有一些魔法,只有“引用”中指定的程序集才会被实际引用,而所有其他程序集将保留在分解的 \packages 文件夹中,并且应用程序将工作,因为所有 dll 都位于同一目录中。也许我错了......

尝试#2 作为内容添加到项目中如果我在打包时将未引用的程序集放入 \content\lib 而不是 lib\net35 中,则会在项目中创建一个 \lib 文件夹,并将 \content\lib dll 直接转储到该项目中,然后强制我们将它们签入源代码管理。它可以按我想要的方式工作、编译和运行,但是我真的不希望将它们存储在项目的 \lib 文件夹中。

我正在寻找一种解决方案,其中项目获取对“A”的引用,并且仍然可以与位于同一位置但不直接引用的其他所需程序集一起运行。看起来尝试 #1 是正确的路径,但也许存在错误?

仅供参考,我输入了这个作为 NuGet 的问题 http://nuget.codeplex.com/workitem/2704直接看到团队也有答案。


这是 Nuget 2.1 中引入的错误,后来在 2012 年 12 月发布的 Nuget 2.2 版本中修复。

在原始发布中使用尝试 #1 现在可以正常工作。

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

NuGet 打包和引用 dll 的相关文章

随机推荐

  • Git 合并两个本地分支

    我有分行Master branchA and branchB 现在我在branchA我需要合并branchA with branchB并继续我的工作branchA 所有文件都提交在branchA and branchB 快速实施的方法是什么
  • 来自内部处理程序的 Gorilla Mux 路由器仅工作一次,然后给出 404 页面未找到

    我正在使用大猩猩mux作为我的路由器 我的行为非常奇怪 在向服务器发出第一个请求时 我得到了有效的响应 但在随后的请求中 我收到了404 page not found 控制台中没有错误 我的代码非常简单 可以复制粘贴来立即测试 packag
  • 引入新的 Google Apps Marketplace 后,现有列表不再可编辑

    这是谷歌应用市场支持人员的问题 推出新的 Google Apps Marketplace 后 我无法再从 Google Apps Marketplace 中的供应商资料中编辑现有列表 每当我尝试编辑现有列表时 都会收到以下错误 错误 抱歉
  • Heroku 上的全新部署失败,并显示“使用 --allow-unverified PIL 允许”

    尝试将 Django 项目部署到 Heroku 上的新应用程序 过去两年该代码在其他实例上运行 并遇到了以下问题 Downloading unpacking PIL 1 1 7 from r requirements txt line 7
  • 如何使用 Node.js 在实时数据库中使用 orderByChild 和 startAfter

    我正在尝试按降序排序顺序并在特定键之后开始 但它不起作用 下一个之后 Mk4 n5BnVpwhum62n2g或任何键 id 数据库记录 Mk4 n5BnVpwhum62n2g id Mk4 n5BnVpwhum62n2g createdAt
  • 如何使用 cypress.io 更改数据库中记录的属性

    我是 cypress 的新手 我想知道如何进行以下检查 我有一个案例 我在数据库中有一个产品 其状态可以是 InStock OutOfStock 和 Discontinued 如果产品处于 InStock 状态 我应该能够将其发送给客户 如
  • Azure 数据工厂 - 如何触发计划/一次性管道?

    背景 我已安排运行管道以将数据从源复制到目标 该任务计划每天在特定时间运行 问题 管道的输入数据集是外部的 并且在特定时间间隔不可用 这意味着复制活动必须等到管道中提到的计划开始时间才能开始 考虑到数据量 我不想在这里浪费时间 要求 在任何
  • 如何添加使用 R 中的对绘制的 Spearman 相关系数的 p 值

    我看到已经有代码可用于将 Pearson 相关系数和 p 值添加到散点图矩阵中 现在我只想在上面的面板中添加 Spearman 相关系数 目前我可以通过调用添加皮尔逊相关系数upper panel panel cor 如下所示 the co
  • 位置:在reveal.js中固定

    我正在尝试为我的reveal js 演示文稿制作一个标题 使其粘贴在屏幕顶部 标题中的内容在每张幻灯片的基础上都是动态的 因此我必须将标记放置在部分标记内 显然 如果标记位于部分标记内 position fixed 并不能真正在 Revea
  • “模块”对象没有属性“form_for_model”

    当我使用属性时 模型的表单 我收到错误模块对象没有属性 form for model 我由此创建了该项目http www mikecantelon com q node 22 http www mikecantelon com q node
  • 具有联接和动态列的 SQL SERVER PIVOT 表

    我有一个问题需要调整 但遇到了麻烦 SQL Server 的版本为 2005 和 2008 查询源自公共表表达式 DECLARE cols AS NVARCHAR MAX query AS NVARCHAR MAX in iYearFrom
  • 将函数从纯 React 转换为 Redux React

    在纯反应中 我编写了一个调用的函数componentDidMount getTasks userId query statusTask pageNumber gt let check axios url api v1 beta userId
  • fortran 中的多重定义链接错误(ifort - gfortran)

    嗯 我有这个问题 描述很长 但我认为很容易解决 我有三个文件 nrtype f90 它有一些愚蠢的定义 但它被以下文件使用 module nrtype integer parameter I4B SELECTED INT KIND 9 in
  • 如果您强制推送到具有现有拉取请求的分支,会发生什么?

    我正在开发一个 git 分支 该分支目前是 github 上已关闭拉取请求的一部分 在最初的拉取请求之后 我做了一些额外的提交 将这些提交推送到 github 然后恢复这些提交并重新提交它们 因为我需要修改提交 现在 如果我想将这些提交推送
  • AVPlayer 消除了 Swift 2.2 中的观察者崩溃

    我有一个视频应用程序 是我在 Swift 1 中构建的 我一直在尝试迁移到 Swift 2 2 除了与观察者有关的奇怪崩溃之外 这一切 最终 都正常工作 func removeObservers print REMOVING OBSERVE
  • 两个 NSDate 之间的天数[重复]

    这个问题在这里已经有答案了 如何确定两次之间的天数NSDate值 也考虑到时间 The NSDate值可以是任何形式 NSDate date takes 具体来说 当用户在我的 iPhone 应用程序中进入非活动状态时 我存储以下值 exi
  • 如何检查变量是否是类的实例?

    在Java中 你可以这样做instanceof 有 Ruby 等价的吗 几乎一模一样 您可以使用Object s instance of method a instance of String gt true a instance of O
  • 使用 Perl split 函数,但保留某些分隔符

    我有一个字符串需要根据某个字符进行拆分 但是 当字符串两侧是数字时 我只需要在其中一个字符上拆分字符串 相同的字符存在于字符串中的其他位置 但两侧会有一个字母 至少在一侧 我尝试按如下方式使用 split 函数 使用 x 作为相关字符 my
  • 更改四开中的标题大小和颜色(html 输出)

    我有一个带有 HTML 渲染的四开文件 我想更改标题的大小和颜色 我应该如何操作 最小的例子 title Cars format html MTCars r head mtcars 您可以使用css直接在您的代码中 指定 title仅将更改
  • NuGet 打包和引用 dll

    背景 我有两个程序集 称为 A 和 B A 引用了 B A 还引用了一些其他 dll Microsoft Enterprise Library Data 和 Microsoft Enterprise Library Common 我认为这些