【问题标题】:C# Setup with external DLL使用外部 DLL 进行 C# 设置
【发布时间】:2014-09-10 07:19:00
【问题描述】:

我正在尝试为 .NET 3.5 中的 C# 应用程序进行设置。

该应用程序运行另一个为 .NET 4.5 编译并使用一些 DLL 的应用程序。我想将此应用程序添加到设置中的应用程序文件夹中。

我无法将 DLL 作为文件添加到设置中,弹出错误。 ("操作无法完成")

如果我将 DDL 添加到项目文件夹,然后将它们用作内容,我会在创建项目时收到“不可恢复的构建错误”。

我应该如何添加这些 DLL?我不在乎如何,但我需要它们在项目文件夹中。

谢谢。

PS:我使用的是 VisualStudio 2008 的标准设置。

【问题讨论】:

  • 我不知道这是什么错误,但是您可以使用自定义操作来复制这些所需的 dll。
  • 你会怎么做?安装前我应该将 DLL 存储在哪里?
  • 安装文件旁边。你也可以压缩它们。但也许还有更好的方法。

标签: c# .net dll installation


【解决方案1】:

使用 Visual Studio,当您将外部 DLL 作为引用添加到项目中时,它会自动添加到设置中。

【讨论】:

  • 我无法将这些 DLL 作为参考添加到我的项目中,因为它们是 .NET 4.5 而我的项目是 .NET 3.5。如果我添加它们,它们是“未找到”--> 路径字段为空。
【解决方案2】:

首先,有没有办法找到针对 .NET 3.5 的程序集的早期版本?或者,如果您有权访问源代码,请删除/更改 .NET 4.5 特定代码并重新编译?

否则,您可以尝试将 dll 包装在 COM 接口周围,如 here 所述。本文针对与 .NET 2.0 一起使用的 .NET 4 dll,但该机制在您的配置中仍应有效。我自己已经成功地将它用于 2.0/4.0 互操作。

Here 是您可以尝试的另一个技巧。

【讨论】:

  • 几乎没有完成。我不确定我会浪费这么多时间来审查代码。该项目使用了几个 dll。我唯一需要的是要执行的exe。我从没想过在设置中包含一个文件作为“文件”而不弹出错误会如此困难。
  • 好吧,您可以尝试使用其他技巧(请参阅我更新的帖子)。 VS2012 对我不起作用,但值得一试。
【解决方案3】:

请注意,无论哪种情况,您都需要在目标计算机上安装 .NET 4.5 才能正常工作。因此,您可以将您的项目从 3.5 移动到 4.5。我了解您使用没有 .NET 4.5 的 VS2008,但您可以从此处使用 Visual Studio 的快速(免费)版 -> Microsoft Download Page

【讨论】:

    【解决方案4】:

    我用一个简单的技巧解决了这个问题:

    错误仅来自用 .NET 4.5 编写的 DLL。可执行文件 (.exe) 没有导致任何错误。我所做的是使用 ILMerge 工具将所有 DLL 打包到 exe 中。

    然后我将 .exe 文件添加到库中,一切正常。

    ILMerge download site (Microsoft)

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 1970-01-01
      • 2012-08-17
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多