csproj 文件中 <Use64BitIISExpress /> 元素的用途是什么

What's purpose of <Use64BitIISExpress /> element in csproj file

当我编辑 Web 应用程序项目时,Visual Studio 2017 (15.3.1) 在 csproj 文件的 Project/PropertyGroup 下添加了 <Use64BitIISExpress /> 元素。 我找不到任何文档,目的是什么,以及它是否会影响某些东西,在呈现时(按原样,没有任何属性)。

我能找到的唯一结果是提到了同名的注册表值。

有人知道这个元素有什么用吗? 它是在 Visual Studio 2017 的一些最近更新中引入的吗?

在我对我的项目的“属性”页面进行更改后,我毫不奇怪地注意到了这个条目。在“属性”页面的“Web”部分下,您会看到一个名为 "Servers" 的部分。在我更改 "Project URL" 以使用正确的端口号进行调试后,出现了此条目(不是因为我专门更改了该选项,而是当我注意到它出现时)。

<Use64BitIISExpress />

在此部分中,您可以 select "IIS Express" 或 "External Host"。在该下拉列表旁边,还有另一个 "Bitness" 的下拉列表。我的当前设置为 "Default",它将项目文件中的条目显示为空元素。将 "Bitness" 更改为 "x64" 后,我的项目文件条目更改为:

<Use64BitIISExpress>true</Use64BitIISExpress>

将我的 "Bitness" 更改为 "x86" 结果:

<Use64BitIISExpress>false</Use64BitIISExpress>

将 "Bitness" 返回到 "Default" 使其再次成为空元素:

<Use64BitIISExpress>
</Use64BitIISExpress>

我知道这没有解决您 "where is the documentation?" 的问题。我也找不到此属性的任何相关 MSBuild 文档。但是,我认为在我们焦急地等待一些正式的官方文档时,值得注意的是该属性的来源以及它如何根据项目属性中的 selected 选项起作用。

这样做的目的(很明显)是以 64 位模式启动 IIS Express。相当于在IIS的Application pool上只设置64bit。

如果您的项目依赖于仅在 64 位 模式下运行的 DLL,那么这就是您需要设置它的时候。这从 VS2013

开始可用

Probably is useful if you prefer to do do F5 debugging instead of process reattaching for your pure 64bit applications

started showing up in the config files since VS2017 由于 Visual Studio 可移植性发生的所有变化。 (VSCode、Visual Studio Mac、Xamarin 等)