如何编译x64 asp.net网站?

时间:2010-04-07 23:57:06

标签: asp.net visual-studio iis 64-bit chilkat

我正在使用 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位编译器一起运行?

这是我目前的开发配置:

  • Windows 7(x64)。
  • Visual Studio 2008 Pro(当然是x86 ......)。
  • Chilkat图书馆(x64)
  • IIS / Asp.net(x64)。

2 个答案:

答案 0 :(得分:26)

为什么
您的网站(管理部分,可能全部是非第三方)不是以32位或64位模式编译的,至少不是您想的那样。不同之处在于,Visual Studio用于其Web服务器的WebDevServer.exeCassini的一个版本)仅为32位。因此,它只加载32位兼容的DLL。

64位计算机上的IIS可以在32位或64位模式下运行(默认为64位),具体取决于配置设置,因此可以轻松加载应用程序。

<强>解决方案: 不幸的是,这里没有很多选项,I asked the same question a while ago。最好的办法是使用IIS进行调试。你这样设置:

  • Web项目&gt;设置
  • “网络”标签
  • 在“服务器”下,选择使用本地IIS Web服务器

答案 1 :(得分:0)

解决方案是将两个DLL(x64和x86 DLL)放在GAC中,让每个应用程序动态决定何时使用x64或x86 DLL(当然,你必须引用GAC DLL)你的项目)。

我亲自与ChilkatDotNet2的开发人员讨论过,这是我们双方同意的解决方案。