代码之家  ›  专栏  ›  技术社区  ›  greenoldman

如何将所有DLL合并为一个应用程序?

  •  0
  • greenoldman  · 技术社区  · 15 年前

    我的例子是:我有一个app.exe和几个dll——a.dll、b.dll、c.dll等(它们来自于包含许多项目的单个vs解决方案)。我想合并(ilmerge)所有的dll到一个这样我将有:app.exe+x.dll。

    现在,有一个问题——应用程序需要所有的DLL,所以当我只放一个文件x.dll时,它就不会运行。那么,如何“重定向”应用程序以使用一个x.dll——这是完全可能的吗?

    我知道的一个解决方案是删除对Visual Studio中项目的所有引用,并添加对合并的dll的引用。但这将在重新编译解决方案时禁用依赖链接。

    btw.i无法将exe和dll合并在一起,因为这是一个wpf应用程序,而ilmerge无法处理它。

    2 回复  |  直到 14 年前
        1
  •  3
  •   linuxuser27    15 年前

    您可以创建3个.netmodules并将其转换为一个dll,而不是创建3个dll。它需要对实际的csproj文件进行一些编辑,因为创建.netmodules当前未集成到msbuild系统中,但可以完成。

    你可以把NetModule看作是C/C++中的一种静态库。当然有区别,但总体上概念是相似的。当试图创建包含多个.NET语言的单个dll时,它们是最常见的,但它们也适用于您。检查他们 here .

        2
  •  0
  •   adeel41    14 年前

    我建议你读一下这个博客。当需要合并WPF程序集时,它是ILmerge的一个替代方法。 http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

    推荐文章