我是一名C#新手,他在2010年使用第三方托管程序集(EncryptionManager.DLL)在VS 2010 C#中编写程序来加密/解密数据。 程序在安装了.Net 3.5 SP1的XP Pro SP3中运行良好。 在启用了.NET 3.5的Windows 7 Pro x64上,程序失败并显示以下错误:
System.BadImageFormatException:无法加载文件或程序集“EncryptionManager,Version = 1.0.2978.16361,Culture = neutral,PublicKeyToken = 53b6ffdb4dc98f0f”或其依赖项之一。尝试加载格式不正确的程序。 文件名:'EncryptionManager,Version = 1.0.2978.16361,Culture = neutral,PublicKeyToken = 53b6ffdb4dc98f0f'
DLL安装在GAC中,位于程序搜索路径中 DLL被隐式加载(引用编译) 清单和DLL系统版本匹配:
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="EncryptionManager.dll" size="25896">
<assemblyIdentity name="EncryptionManager" version="1.0.2978.16361" publicKeyToken="53B6FFDB4DC98F0F" language="neutral" processorArchitecture="x86" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>qAxbPPkBK+n8/jtJ8pnjvJg/E2A=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
在Windows 7上运行此操作需要做什么?
答案 0 :(得分:2)
将项目设置为使用x86而不是任何CPU作为目标。