2009-08-27 36 views
0

我们写的时候 程序集asm = AppDomain.CurrentDomain.Load(SomeByteArray);appdomain C++ c#

当从.net .exe读取SomeByteArray一切正常,并从C++时,错误。

这个功能对使用.net exe很重要吗?

如果是的话请用其他方式来做到这一点。

感谢

+0

当你说“C++”你的意思是C++/CLI?你得到了什么确切的错误? – 2009-08-27 11:35:54

+0

无法加载从ConsoleApplication3,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其某个依赖关系加载的文件或程序集“38400字节。试图加载格式不正确的程序。 ConsoleApplication3是我的节目里我叫AppDomain.CurrentDomain.Load(模板)方法, 感谢 – 2009-08-27 12:00:13

+1

我认为这是不可能的:( AppDomain.CurrentDomain.Load(SomeByteArray); SomeByteArray必须.NET :(,我是对的? – 2009-08-27 12:11:52

回答

0

是调用组件和一个你同时装入同一种版本(86,64或AnyCpu)的?您可以通过在ILDASM中查看它们来检查构建(查看清单,滚动到底部并查找校正码)。

如果您自己构建了两个装配体,那么只需检查项目的属性页以了解其构建方式。

您必须确保它们是相同的,或者如果.exe是AnyCpu,那么您加载的程序集必须匹配任何操作系统。这意味着它必须是32位操作系统上的x86或64位操作系统上的x64。

(这是所有假设SomeByteArray从文件加载正确)