首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NuGet封装和引用dll的

NuGet封装和引用dll的
EN

Stack Overflow用户
提问于 2012-10-10 12:55:21
回答 2查看 7.6K关注 0票数 7

背景:我有两个程序集,名为"A“和"B”。"A“引用"B”,“A”还引用了一些额外的dll (Microsoft.Enterprise Library.Data和Microsoft.Enterprise Library.Common ),我认为它们应该打包在nupkg中。

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

尝试1:根据NuGet documentation regarding the "references"元素将所有所需的dll打包到\net35 35文件夹中“如果省略该元素,则应用通常的行为,即引用库文件夹中的每个程序集”。

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

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

我正在寻找一个解决方案,其中项目获得了对"A“的引用,并仍然可以运行与其他程序集共存,但不是直接引用。似乎第一次尝试是正确的路径,但可能有错误吗?

最后,我直接输入了这个as a issue with NuGet,看看球队也有一个答案。

EN

Stack Overflow用户

回答已采纳

发布于 2012-12-26 19:46:05

这是Nuget 2.1中引入的一个bug,后来在2012年12月发布的Nuget 2.2版本中进行了修复。

在原始投递中使用第一次尝试现在可以正常工作。

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12819868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档