【问题标题】:Compiling VS.NET *web site* (not web app) that references x64 assemblies?编译引用 x64 程序集的 VS.NET *网站*(不是 Web 应用程序)?
【发布时间】:2012-04-03 02:18:01
【问题描述】:

我有一个网站引用了两个仅 64 位的程序集。这些程序集的 32 位版本确实存在,但是我想使用 x64 版本运行。在 IIS 下运行的 ASP.NET 可以轻松编译或运行网站。但是 VS.NET 2010 不会编译它。它点击“无法加载引用的库 'c:\inetpub\wwwroot\eDocEngine\Bin\ABCpdfCE7.dll':试图加载格式不正确的程序。”然后产生数百个其他虚假错误,例如声称“未定义类型'Generic.List'。”

如果我用 32 位版本替换 64 位 DLL,VS.NET 突然对我的所有代码感到满意。

由于我使用 IIS 而非 Cassini 进行调试和测试,因此我想保留 64 位 DLL。有什么办法可以做到这一点吗?

在搜索我found 时,如果我使用的是 Web 应用程序,app.config 设置可能会有所帮助。但我不是;这是一个网站。有什么我能做的吗?

【问题讨论】:

  • 格式不正确的消息与其正在加载的 dll 的“位数”有关。您使用的是什么版本的 IIS?
  • 在Windows 7下开发,故为IIS6.1。我知道所有关于比特的事情。我有针对 x86 和 x64 的不同 DLL。我的操作系统和我的 IIS 正在运行 x64。但是,我再说一遍,Visual Studio 拒绝编译引用 x64 DLL 的网站项目。所以 Visual Studio 声称我的代码充满了错误,而实际上它在 IIS 中完美运行。几个月后,我们将转换为 Web 应用程序,而这一切最终都会消失。
  • 打开 IIS 管理器转到应用程序池,选择您正在使用的应用程序池。单击右侧的高级设置,在“(常规)”下,您应该有一个启用 32 位应用程序的设置,我假设它是 True ?
  • 我不想在 IIS 中使用 32 位 DLL 运行该站点。我想在 IIS 中使用 64 位 DLL 运行该站点。作为一个 Web 应用程序,这很好。作为一个网站,VS.NET 拒绝编译它。

标签: visual-studio-2010 iis-6 asp.net-4.0 windows-7-x64


【解决方案1】:

网站似乎没有答案。到目前为止,我们已经将其全部更改为 Web 应用程序,这不再是问题。所以我自己回答这个问题来关闭它。

【讨论】:

  • Blimey 可能会尝试一些东西并报告回来,而不是仅仅说,我不会尝试这样会更进步,与这里的人一起工作,而不是决定你知道得更好。它只是不是这样工作的。
  • 几周后,我意识到这不是 SO 应该如何工作的。所以我不接受我的回答。
  • 想解释一下这个反对意见吗?如果答案是“因为你对我投了反对票而报复”,那么请承认。
猜你喜欢
  • 2011-06-28
  • 1970-01-01
  • 2010-09-09
  • 1970-01-01
  • 2010-09-06
  • 2021-08-10
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
相关资源
最近更新 更多