0

我的情况:我有一个 app.exe 和几个 dll——a.dll、b.dll、c.dll 等(它们来自由许多项目组成的单个 VS 解决方案)。我想将所有 dll 合并(ilmerge)为一个,所以我将拥有:app.exe + x.dll。

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

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

顺便提一句。我无法将 exe 和 dll 合并在一起,因为这是一个 wpf 应用程序,而 ilmerge 无法处理它。

4

2 回答 2

3

您可以创建 3 个 .NetModules 并将它们转换为一个 DLL,而不是创建 3 个 DLL。它需要对实际的 CSPROJ 文件进行一些编辑,因为创建 .NetModules 目前尚未集成到 MSBuild 系统中,但可以完成。

您可以将 .NetModule 视为 C/C++ 中的一种静态库。当然有区别,但总体概念是相似的。它们在尝试制作包含多种 .NET 语言的单个 DLL 时最常见,但它们也适用于您。在这里查看它们。

于 2010-08-18T07:11:41.477 回答
0

如果您阅读此博客,我会推荐。当您需要合并 WPF 程序集时,它可以替代 ILMerge。 http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

于 2011-05-20T09:49:22.910 回答