【发布时间】:2013-09-24 09:20:19
【问题描述】:
我有一个 VS2012 的解决方案,可以简化如下:一个 asp.net mvc 4 web app,一个中间 c# 类库项目,一个用于计算等的 end c# 库项目。
Web 应用程序当前没有对其他项目的引用,并且在构建时配置为“任何 CPU”。最终项目是 x64。我现在想通过中间项目将网络应用程序加入到最终项目中,但是当我尝试从网络应用程序引用中间 x64 项目时,我可以理解得到架构类型错误。如果我将网络应用程序设置为 x64,我也会收到相同类型的错误。
Web 应用程序将在 x64 服务器上运行,因此我认为最简单的做法是将 Web 应用程序设置为 x64,但我相信您可能无法追溯更改它,即它需要创建为x64。
我的问题是 我可以将现有的网络应用程序转换为 x64 吗?如果没有,我如何创建 x64 网络应用程序(我看不到任何选项) 编辑:即使我设置了一个新的 mvc 4 项目,将构建设置更改为 x64 我仍然遇到这个问题。
您会惊讶地发现我对软件开发非常陌生,虽然 x86 和 x64 之间的构建错误看起来很直观,但我并不真正理解为什么。关于这个主题似乎有很多帖子,答案是“将所有项目更改为任何 Cpu,但我受限于将最终项目保留为 x64。
我使用的是 Windows 8 和 IIS 8。
作为参考,我在将中间项目的引用添加到 Web 应用程序时收到的构建警告是:
警告 1 正在构建的项目的处理器架构“MSIL”与参考 C:\MyPath\Sln\MiddleProject\bin\x64\Debug\MiddleProject.dll", "AMD64 的处理器架构不匹配"。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器架构,以便在您的项目和引用之间对齐处理器架构,或者依赖与目标匹配的处理器架构的引用您项目的处理器架构。
【问题讨论】:
-
@Aaron,Middle 项目可以使用 64 或 32,但 End 项目需要 64。我的第一种方法是将 web 应用程序和 Middle 项目保留为 Any Cpu,但我仍然遇到从中间引用 End 项目时同样的问题。
-
如果您将所有 3 个项目都设置为 x64,那么编译应该不会有任何问题。但是,根据您在 Visual Studio 中配置引用的方式,您可能会遇到问题。您是否将引用配置为文件引用或项目引用?
-
我一直在使用项目引用。我尝试将所有项目设置为 x64,但没有任何运气。我也尝试了一些数字组合。这是我无法在 x64 中运行的网络应用程序。我什至在没有运气的 64 位笔记本电脑上尝试过(即创建新应用程序,更改为 x64 并运行。)我浏览了许多 IIS 文件以寻找对 x86 或 32Bit 的引用,但没有运气。顺便说一句,它是 IIS Express,以防万一......
-
您应该能够简单地创建一个新的 Mvc 4 应用程序并为 x64 构建吗?还是我需要先配置 IIS Express?
标签: asp.net-mvc