【问题标题】:Is there a way to exclude DLL dependencies有没有办法排除 DLL 依赖项
【发布时间】:2021-05-16 23:03:11
【问题描述】:

这是我的问题:

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

当我们需要使用大量第三方 DLL 时,这会变得很麻烦。 DLL 是否没有嵌入其依赖的 DLL 之类的?有没有办法不让客户访问这些第三方 DLL (B.DLL)?

【问题讨论】:

  • 你用的是什么IDE?
  • Visual Studio 2015
  • 这就是你想要的吗? stackoverflow.com/questions/8077570/…如果是这样,这个问题可能是重复的。
  • @BrandonDeaton 我很想知道 jiml 指出的内容是否是您想要做的事情。

标签: visual-studio dll


【解决方案1】:

选择您不想包含的内容。

右键单击,将属性“复制本地”更改为 false。

【讨论】:

    【解决方案2】:

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

    在 Visual Basic 中删除引用

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

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

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

    在 Visual C# 中删除引用

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

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

    【讨论】:

    • 这显示了如何删除引用。这不是我要问的。我的确切情况是我在解决方案资源管理器中不需要它,因为我没有在我的项目中(直接)使用 B.DLL。但是,当我运行应用程序时,它会尝试访问 B.DLL。所以我必须将它添加到 bin 文件夹中才能运行。我的意思是,如果我想避免需要将 B.DLL 添加到输出文件夹怎么办?有没有办法将 B.DLL 嵌入 A.DLL 或类似的东西?
    • @BrandonDeaton,对不起,我误解了你的问题。我以为你试图尊重 .dll。所以你的运行时引用 B.dll?但是您不想将 B.dll 添加到解决方案中?
    • 正确。我不希望 B.DLL 在输出文件夹中。 (Bin/Debug/) 有时我们会尽量减少我们需要与项目保持更新的 DLL 的数量。例如,实体框架需要两个 DLL。我们在库 (dll) 中为实体框架构建了一个包装器。现在我们不想包含实体 DLL。只是带有实体包装器的库。
    • @BrandonDeaton 我认为如果不从那里反编译 A.dll 和取消引用 B.dll,就无法取消引用 B.dll。你建立了A.dll 吗?如果是这样,请打开 A.dll 并取消引用 B.dll 我向您展示的方式。如果不是,您将不得不反编译、取消引用,然后重新编译 A.dll
    猜你喜欢
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 2012-06-24
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多