在Windows 7 Pro x64中无法加载第三方加密托管程序集

时间:2012-01-17 14:13:31

标签: c# dll

我是一名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上运行此操作需要做什么?

1 个答案:

答案 0 :(得分:2)

将项目设置为使用x86而不是任何CPU作为目标。