【问题标题】:Why can't I set asp.net mvc 4 project to be x64为什么我不能将 asp.net mvc 4 项目设置为 x64
【发布时间】: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?
  • 好的。因此,您会收到编译时警告,并认为这会导致您的运行时问题。您真正需要做的是让 IIS Express 作为 64 位进程运行。该警告是相关的,但可能不是您的运行时问题的原因。我不熟悉 IIS Express,但我发现这些链接 link1 link2 应该对您有所帮助。

标签: asp.net-mvc


【解决方案1】:

右键“Project -> Properties -> Build”,将平台目标更改为你想要的架构。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 看在托尔的份上,为什么 VS 不能自己解决这个问题?谢谢!
    • 那是罪魁祸首
    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2015-03-19
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多