我的开发机器是Win XP Pro 32位,生产机器是带有IIS 7的Windows Server 2008(64位)。在我的开发机器上,我想将ASP.NET(使用aspnet编译器)编译为64位字节代码。 / p>
任何人都可以告诉我该怎么做?请不要建议在64位环境下运行32位应用程序的任何方法。
我希望在32位机器上编译64位应用程序,这样当它运行时,它将充分利用64位O / S而无需任何仿真。
答案 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)
.net应用程序将针对目标计算机环境重新定位自己。这可以在项目构建选项下找到。