有没有一种方法可以排除DLL依赖关系?

3

这是我的问题:

  • 我有一个应用程序(WPF),它使用A.DLL
  • A.DLL使用第三方DLL(B.DLL)
  • 在我的应用程序中,我想要使用A.DLL。我没有直接引用B.DLL中的任何内容。但是,当我开始构建安装程序时,我发现它包含了B.DLL

当我们需要使用很多第三方DLL时,这就变得麻烦了。DLL不会嵌入它所依赖的DLL吗?难道没有办法防止客户访问这些第三方DLL(B.DLL)吗?


你使用的是什么集成开发环境(IDE)? - akasoggybunz
Visual Studio 2015 - Brandon Deaton
1
这是你想要的吗?https://dev59.com/hGsz5IYBdhLWcg3wLEq8 如果是的话,这个问题可能是一个重复的。 - Jim L
@BrandonDeaton,我很好奇jiml指向的内容是否是你要寻找的。 - akasoggybunz
2个回答

0

选择不想包含的内容。

右键单击,将属性“复制本地”更改为false。 输入图像描述


-3

MSDN上,它解释了如何在您的Visual Studio解决方案中添加删除引用(.DLL)。

在Visual Basic中删除引用

1.在“解决方案资源管理器”中,双击项目的“My Project”节点。

2.在“项目设计器”中,单击“引用”选项卡。

3.在“引用”列表中,选择要删除的引用。单击“删除”按钮。

在Visual C#中删除引用

1.在“解决方案资源管理器”中,展开项目节点下的“引用”节点。

2.右键单击引用并单击“删除”。

Solution Reference Right click .dll and remove


这段代码展示了如何移除一个引用,但这并不是我想要的。我的确不需要在解决方案浏览器中看到它,因为我没有直接在项目中使用 B.DLL。然而,当我运行应用程序时,它会尝试访问 B.DLL。所以我必须将其添加到 bin 文件夹中才能运行。我的意思是,如果我想避免需要将 B.DLL 添加到输出文件夹中怎么办呢?是否有一种方法将 B.DLL 嵌入到 A.DLL 中或类似的东西? - Brandon Deaton
@BrandonDeaton,抱歉我误解了你的问题。我以为你想要引用一个.dll文件。所以你的运行时在引用B.dll?但是你不想将B.dll添加到解决方案中? - akasoggybunz
正确。我不想在输出文件夹(Bin/Debug/)中有B.DLL。有时我们试图最小化需要与项目保持更新的DLL数量。例如,Entity Framework需要两个DLL。我们在库(dll)中构建了一个Entity Framework的包装器。现在我们不想包括Entity DLL,只需要带有实体包装器的库。 - Brandon Deaton
@BrandonDeaton 我认为你无法在反编译 A.dll 的情况下解除引用 B.dll。你有构建过 A.dll 吗?如果是,请打开 A.dll 并按照我展示的方式解除引用 B.dll。如果没有,你将不得不先反编译、取消引用,然后重新编译 A.dll - akasoggybunz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接