【发布时间】: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