将ASP.NET编译为64位

时间:2009-06-24 18:42:00

标签: asp.net

我的开发机器是Win XP Pro 32位,生产机器是带有IIS 7的Windows Server 2008(64位)。在我的开发机器上,我想将ASP.NET(使用aspnet编译器)编译为64位字节代码。 / p>

任何人都可以告诉我该怎么做?请不要建议在64位环境下运行32位应用程序的任何方法。

我希望在32位机器上编译64位应用程序,这样当它运行时,它将充分利用64位O / S而无需任何仿真。

3 个答案:

答案 0 :(得分:25)

将目标平台保留在AnyCpu上,当在64位操作系统上执行时,.NET将自动在64位上运行

澄清:

(这是作为评论开始的,但我认为这个问题可能也很有趣)

实际上你永远不会编译成一个特殊的架构。你总是编译成IL。

这就像Java Bytecode。 32位和64位的字节码相同。

运行代码的机器上的虚拟机(.NET Framework)然后在运行时将IL编译为实际的机器代码(通过即时编译)。所以,无论你在哪里编译,你总会在IL中找到那些无知的东西。

.NET中的设置只是IL中的一条指令,它告诉JIT(即时编译器)专门使用32位/ 64位。通过翻转程序集中的那一位,您仍然可以在AnyCpu或x64中执行它而无需重新编译。

此设置仅在您调用非本地代码(与COM组件交互或执行p / invoke调用时)时使用和需要

答案 1 :(得分:13)

现在,Visual Studio 2013中有一个选项可以指示IIS Express(通常用于调试)以64位模式运行。

它位于Tools -> Options -> Projects and Solutions -> Web Projects -> Use the 64 bit version of IIS Express…

答案 2 :(得分:6)

假设您没有专门选择以32位模式编译,

.net应用程序将针对目标计算机环境重新定位自己。这可以在项目构建选项下找到。