7

我有一个 VS2012 解决方案,可以简化如下:一个 asp.net mvc 4 web 应用程序、一个中间 c# 类库项目和一个用于计算的最终 c# 库项目等。

Web 应用程序当前没有对其他项目的引用,并且在构建时配置为“任何 CPU”。最终项目是 x64。我现在想通过中间项目将 Web 应用程序加入到最终项目中,但是当我尝试从 Web 应用程序引用中间 x64 项目时,我可以理解得到架构类型错误。如果我将网络应用程序设置为 x64,我也会收到相同类型的错误。

Web 应用程序将在 x64 服务器上运行,因此我认为最简单的做法是将 Web 应用程序设置为 x64,但我相信您可能无法追溯更改它,即它需要创建为 x64。

我的问题是我可以将现有的网络应用程序转换为 x64 吗?如果没有,我如何创建一个 x64 Web 应用程序(我看不到任何选项) 编辑:即使我设置了一个新的 mvc 4 项目,将构建设置更改为 x64 我仍然遇到这个问题。

听到我对软件开发非常陌生,您会感到惊讶,尽管 x86 和 x64 之间的构建错误看起来很直观,但我并不真正理解为什么。关于这个主题似乎有很多帖子,答案是“将所有项目更改为任何 Cpu,但我受限于将最终项目保留为 x64。

我正在使用 Windows 8 和 IIS 8。

作为参考,我在将中间项目的引用添加到 Web 应用程序时收到的构建警告是:

警告 1 正在构建的项目的处理器架构“MSIL”与参考 C:\MyPath\Sln\MiddleProject\bin\x64\Debug\MiddleProject.dll", "AMD64" 的处理器架构不匹配。这个不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器架构,以便在项目和引用之间对齐处理器架构,或者依赖与目标处理器架构匹配的处理器架构的引用你的项目。

4

2 回答 2

31

我花了很多时间研究同样的问题才能找到答案。事实证明,您需要让 IIS Express 作为 64 位进程运行。你是怎样做的?

在 VS 中更改它: 工具 | 选项 | 项目和解决方案 | 网站项目 | 使用 64 位版本的 IIS Express

我希望这有助于解决您的问题。

于 2015-06-15T17:39:00.123 回答
0

右键单击“Project -> Properties -> Build”并将平台目标更改为您想要的架构。

于 2020-10-16T10:18:12.270 回答