【问题标题】:Create a stand-alone C# executable that references a 3rd-party DLL? [duplicate]创建一个引用第 3 方 DLL 的独立 C# 可执行文件? [复制]
【发布时间】:2012-08-27 05:05:31
【问题描述】:

可能重复:
Embedding DLLs in a compiled executable

我想用 C# 制作一个独立的程序,我有一个引用的 dll,所以我不能只从 bin/release/.exe 复制 exe,我必须复制 exe 和 dll。

我希望用户能够下载和运行 exe,而不是 exe 和 dll。独立我的意思是只有 exe,没有安装程序。

【问题讨论】:

  • 我的意思是你要问一个问题。你没有那样做。
  • 我希望你知道到目前为止你得到的所有答案都在上面的链接中。
  • 奇怪的是没有人考虑 setup.exe
  • 我编辑标题以“添加”一个问题。不要忘记接受任何有合适答案的问题和/或删除没有合适答案的旧本地化问题..

标签: c# dll exe


【解决方案1】:

将您的 dll 作为资源嵌入到您的可执行文件中,

附加到AppDomain.CurrentDomain.AssemblyResolve 事件,

并从资源中读取您的 dll 并在事件中返回它。

【讨论】:

【解决方案2】:

看看ILMERGE(和download):

ILMerge 是一个用于将多个 .NET 程序集合并到一个 .NET 程序集的实用程序。它适用于可执行文件和 DLL,并带有几个用于控制输出处理和格式的选项。有关详细信息,请参阅随附的文档。


或者,查看其他部署选项,例如ClickOnce

ClickOnce 是一项 Microsoft 技术,它使用户能够通过单击网页中的链接来安装和运行 Windows 应用程序。 (此类应用程序称为智能客户端。)ClickOnce 是 Microsoft .NET Framework 2.0 及更高版本的组件,支持部署使用 Windows 窗体或 Windows Presentation Foundation 制作的应用程序。


第三种选择是创建安装程序 - 使用 setup project 或第三方安装程序(有很多)。

【讨论】:

  • +1 走 ilmerge 路线“真是太简单了”。但是,这假设另一个 DLL 也是托管/CLR 并且不通过 COM 互操作或任何花哨的东西访问。
  • @pst - 公平点,虽然我认为这是一个公平的假设。
  • 我愿意。只需添加免责声明 :) 虽然文档确实说“将 [..] .NET 程序集合并到 [..] .NET 程序集”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 2021-10-04
  • 2013-06-01
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 2019-11-10
相关资源
最近更新 更多