我正在运行Visual Studio 2017,ASP.NET 4.7和MVC 5,用于针对IIS Express和Azure App Services进行开发。
当前为32位。我想将其转换为64位
我看到2个选项:
通过“活动”标签在解决方案的配置中明确设置x64
。
通过“活动”标签在解决方案的配置中明确设置AnyCPU
。
我已将IIS Express设置为64位,并将Azure App Service实例设置为64位。
我认为2)是最佳实践,因为将提高Web服务器目标位数。
如果有所作为,可能会使用一些第三方32位dll。
谢谢。
答案 0 :(得分:1)
如果您的项目仅使用托管DLL或Nuget包,则任何CPU都可以。 AnyCPU意味着在运行时它将根据您的CPU位数决定64位还是32位。
现在,如果您明确希望告诉您的程序应该以32位模式还是64位模式运行,则必须选择该特定配置文件。
例如:我使用的是非托管DLL,它是专门为64bit编写的,因此AnyCPU将产生问题,因为它不是在编译时决定的。同样适用于32bit。在这里,我们明确尝试告诉它必须在特定的位配置文件中运行。
在IIS级别上,此配置也可用,就像您可以将32位dll设置为在应用程序池级别上运行。
评论后更新。
注意: 1.在现实生活中,我也遇到过这样的问题,其中azure应用依赖于32位,而我们的层是64位。 2.如果继续前进并选择VM,则将获得所有选项。