将单声道与嵌入它的c ++应用程序捆绑在一起

时间:2013-05-13 23:04:14

标签: mono embed bundle mono-embedding

我创建了一个示例c ++应用程序,它使用动态链接嵌入单声道(如此处所述http://www.mono-project.com/Embedding_Mono)并使用C#进行脚本编写。只要mono安装在全局程序集缓存(GAC)中,它就可以正常运行。

有没有办法将mono与我的c ++可执行文件捆绑在一起,以便我可以将它与我的c ++可执行文件一起安装?

我一直在关注mkbundle,但它看起来像是用c#apps打包单声道。

编辑:回答以下重新格式化

#include <cstdlib>
_putenv("MONO_GAC_PREFIX=C:\\cygwin\\usr\\local\\bin\\");
mono_set_dirs("C:\\cygwin\\usr\\local\\lib","C:\\cygwin\\usr\\local\\etc");

编辑: 更正:我只需要在可执行文件夹中复制/粘贴mono-2.0.dll并使用  mono_set_dirs("C:\\cygwin\\usr\\local\\lib","C:\\cygwin\\usr\\local\\etc");强制使用特定框架

1 个答案:

答案 0 :(得分:1)

Mono由两个不同的部分组成:

  • 用C语言编写的基本运行时,如OQ中所述,可嵌入
  • 许多类库,大多是用C#编写的。它们不与运行时嵌入,而是驻留在GAC

基本上您需要提供自己的GAC - 通过将其带入您的应用程序文件夹结构,然后将MONO_GAC_PREFIX环境变量设置为您安装的任何位置,即可轻松完成。