试图加载格式不正确的程序(.dll)
本文关键字:程序 dll 不正确 加载 格式 | 更新日期: 2023-09-27 18:25:00
我的程序编译得很好,但当我运行程序时,我会收到以下错误:
"调用IO_Init()时引发System.BadImageFormatException。消息=试图加载格式不正确的程序。(HRESULT:0x8007000B的异常)"
据我所知,这个错误是因为我的程序试图使用与我的程序(以64位编译)不相同的dll。我也有一个32位版本的dll,当我运行32位版本程序时,它不会抛出任何错误,这很好。
在我的程序开始时,我运行它来检查我们是否处于64位,如果是,请转到包含64位文件的文件夹:
if ((IntPtr.Size > 4) && ((ad.RelativeSearchPath == null) || !ad.RelativeSearchPath.Contains(ad.BaseDirectory + "64''")))
{
AppDomainSetup aset = new AppDomainSetup();
aset.PrivateBinPath = ad.BaseDirectory + "64'';" + ad.BaseDirectory;
aset.PrivateBinPathProbe = ad.BaseDirectory + "64'';" + ad.BaseDirectory;
ad = AppDomain.CreateDomain("_NM64SWITCH_", Assembly.GetAssembly(typeof(NaviModel.Program)).Evidence, aset);
ad.ExecuteAssemblyByName(Assembly.GetAssembly(typeof(NaviModel.Program)).FullName, par);
return;
}
我有点不知所措,不知道现在该往哪里看。
从任何CPU切换到x86为我解决了这个问题。