如何在C ++ / CLI可执行文件中嵌入DLL?

时间:2014-05-12 09:08:55

标签: c# dll c++-cli embed

我正在使用C ++ / CLI项目,我正在尝试在我的可执行文件中嵌入一些DLL文件(WPF自定义控件库),以避免在同一文件夹中包含超过9000个DLL。 有很多关于在C#项目中嵌入C ++ / CLI DLL的信息(此外,它非常简单),但有关反向的文档似乎很差。

我找到的最接近的解决方案是:Embedding resource in a C++/CLI project,但遗憾的是,当我使用Visual Studio(2008或2012)打开.exe文件时,我无法在资源中看到我的WPFWidget.dll。

我想我必须创建一个资源文件,但我从未使用过这种文件,而且我有点迷失,因为在资源文件中嵌入DLL对我来说并不直观。

你知道一个可以帮助我的正确方法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

我建议你用命令行编译你的C#代码并创建一个.net模块:

csc /target:module /addmodule:mfoo.obj bar.cs

然后,您可以使用

将其合并到C ++ / CLI代码中
#using <datei.netmodule>

与/ LTCG联系。所以你只有一个C ++ / CLI DLL,其中包含所有C#代码......

另见:

答案 1 :(得分:-1)

感谢您的回报。 我的项目的架构要求WPF程序集是一个DLL(不是我的选择^^)

[解决] 我找到了一个解决方案,使用了我之前没有见过的主题: embed DLL in MFC C++ EXE? Loading interdependent assemblies from C++/CLI

现在WPF嵌入在rc文件中,我可以在不添加它作为参考的情况下加载它。 谢谢!