我正在使用 Chilkat库编译(使用 Visual Studio ) ASP.Net网站。由于此错误,编译失败:
无法加载文件或程序集'ChilkatDotNet2,Version = 9.0.8.0, 文化=中性, PublicKeyToken = eb5fc1fc52ef09bd'或 其中一个依赖项。一次尝试 是用来加载程序的 格式不正确。
我被告知由于平台不合规而发生此错误。
奇怪的是,虽然编译失败,但一旦从浏览器访问,该网站就可以工作。我的理论是 IIS 编译使用Framework64(64位)文件夹中的csc.exe编译器,而 Visual Studio 使用框架中的csc.exe编译器(32位)夹。如果这是真的,如何配置我的Visual Studio与ASP.Net站点的64位编译器一起运行?
这是我目前的开发配置:
答案 0 :(得分:26)
为什么:
您的网站(管理部分,可能全部是非第三方)不是以32位或64位模式编译的,至少不是您想的那样。不同之处在于,Visual Studio用于其Web服务器的WebDevServer.exe
(Cassini的一个版本)仅为32位。因此,它只加载32位兼容的DLL。
64位计算机上的IIS可以在32位或64位模式下运行(默认为64位),具体取决于配置设置,因此可以轻松加载应用程序。
<强>解决方案:强> 不幸的是,这里没有很多选项,I asked the same question a while ago。最好的办法是使用IIS进行调试。你这样设置:
答案 1 :(得分:0)
解决方案是将两个DLL(x64和x86 DLL)放在GAC中,让每个应用程序动态决定何时使用x64或x86 DLL(当然,你必须引用GAC DLL)你的项目)。
我亲自与ChilkatDotNet2的开发人员讨论过,这是我们双方同意的解决方案。