如何:将项目配置为面向平台
适用范围:Visual Studio
Visual Studio for Mac
Visual Studio Code
可使用 Visual Studio 将应用程序版本设置为面向不同平台(处理器体系结构),包括 Arm64 和其他平台。 无需在平台上运行 Visual Studio 即可针对该目标平台进行生成。 有关 Visual Studio 中 Arm64 支持的详细信息,请参阅支持 ARM 的设备上的 Visual Studio。 有关 .NET 开发的 64 位平台支持,请参阅 64 位应用程序。
注意
Visual Studio 2022 作为 64 位应用程序运行。 这完全独立于可以在 Visual Studio 中针对你的项目面向的平台。 可以使用任何版本的 Visual Studio 同时面向 32 位和 64 位平台。
可使用 Visual Studio 将应用程序版本设置为面向不同平台(处理器体系结构),例如 x86 和 x64。 有关 .NET 开发的 64 位平台支持,请参阅 64 位应用程序。
注意
Visual Studio 作为 32 位应用程序运行。 这完全独立于可以在 Visual Studio 中针对你的项目面向的平台。 可以使用任何版本的 Visual Studio 同时面向 32 位和 64 位平台。
使用 Configuration Manager 设定目标平台
“配置管理器”提供了一种快速添加面向项目的新平台的方法。 如果选择 Visual Studio 附带的平台之一,则设置配置为所选平台生成项目。
若要以本机 C++ 项目中的某些平台为目标,需要为平台安装生成工具。 适用于 x86 和 x64 平台的 C++ 生成工具随默认 C++ 工作负载一起安装。 如果面向另一个处理器体系结构(如 Arm64),则需要使用 Visual Studio 安装程序为平台安装生成工具,然后才能继续。 请参阅修改 Visual Studio。 无需在 Arm64 设备上运行 Visual Studio 以面向 Arm64。 对于 Arm64,可以安装 Arm64 生成工具或 ARM64EC 生成工具;请参阅 Arm64 Visual Studio。
对于 .NET 开发,.NET 6 需要以 Arm64 平台为目标。 请参阅对 macOS 11 和 Windows 11 的 Arm64 和 x64 .NET 支持。
配置项目以面向 Arm64 和其他平台
在菜单栏上,依次选择“生成”>“Configuration Manager” 。
在“活动解决方案平台”列表中,选择一个平台作为解决方案目标,然后选择“关闭”按钮。
如果所需平台未出现在“活动解决方案平台”列表中,请选择“新建” 。 为特定平台安装工具后,你将能够添加针对该平台的新解决方案和项目配置。
此时将显示“新建解决方案平台”对话框。
在“键入或选择新平台”列表中,选择所需的平台(处理器体系结构);例如
ARM64
。注意
如果对配置进行了重命名,则可能需要修改“项目设计器”中的设置,以面向正确的平台。
如果要复制当前平台配置的设置,请选择它,然后选择“确定”按钮。
将项目配置为面向不同平台
在菜单栏上,依次选择“生成”>“Configuration Manager” 。
在“活动解决方案平台”列表中,选择一个平台作为解决方案目标,然后选择“关闭”按钮。
如果所需平台未出现在“活动解决方案平台”列表中,请选择“新建” 。 为特定平台安装工具后,你将能够添加针对该平台的新解决方案和项目配置。
此时将显示“新建解决方案平台”对话框。
在“键入或选择新平台”列表中,选择所需的平台(处理器体系结构);例如
x64
。注意
如果对配置进行了重命名,则可能需要修改“项目设计器”中的设置,以面向正确的平台。
如果要复制当前平台配置的设置,请选择它,然后选择“确定”按钮。
注意
Win32 平台名称用于 C++ 项目,这意味着 x86。 Visual Studio 同时考虑项目级平台和解决方案级平台,并且项目平台来自特定于语言的项目系统。 C++ 项目使用 Win32 和 x64,但解决方案平台使用 x86 和 x64。 选择 x86 作为解决方案配置时,Visual Studio 将为 C++ 项目选择 Win32 平台。 若要查看项目级平台和解决方案级平台设置,请打开“Configuration Manager”并记下这两个平台设置。 解决方案级平台显示在“活动解决方案平台”下拉列表中,表显示每个项目的项目级平台。
以项目设计器或项目属性 UI 中的平台为目标
“项目设计器”或“项目属性”UI 还提供使项目面向不同平台的方法。 如果在“新解决方案平台”对话框的列表中选择的平台之一不适合自己的解决方案,则可以创建自定义配置名称并修改“项目属性”中的配置以面向正确的平台。
此任务的执行根据所用编程语言而有所不同。 有关详细信息,请参阅以下链接:
对于 Visual Basic 项目,请参阅 /platform (Visual Basic)。
对于 C# 项目,请参阅“项目设计器”->“生成”页 (C#)。
手动编辑项目文件
有时,需要手动编辑项目文件以进行某些自定义配置。 例如,当你有无法在 IDE 中指定的条件(例如对两个不同平台而言不同的引用)时,如以下示例所示。 不建议手动编辑在 Visual Studio 中使用的 C++ 项目文件。
示例:引用 x86 和 x64 程序集和 DLL
你可能拥有同时具有 x86 和 x64 版本的 .NET 程序集或 DLL。 若要将项目设置为使用这些引用,请先添加引用,然后打开项目文件并对其进行编辑,以添加具有同时引用配置和目标平台的条件的 ItemGroup
。 例如,假设引用的二进制文件是 ClassLibrary1,并且调试和发布配置以及 x86 和 x64 版本有不同路径。 然后,使用四个包含所有设置组合的 ItemGroup
元素,如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<Platforms>AnyCPU;x64;x86</Platforms>
</PropertyGroup>
<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64'">
<Reference Include="ClassLibrary1">
<HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x64\Debug\netstandard2.0\ClassLibrary1.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64'">
<Reference Include="ClassLibrary1">
<HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x64\Release\netstandard2.0\ClassLibrary1.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86'">
<Reference Include="ClassLibrary1">
<HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x86\Debug\netstandard2.0\ClassLibrary1.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86'">
<Reference Include="ClassLibrary1">
<HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x86\Release\netstandard2.0\ClassLibrary1.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
有关项目文件的详细信息,请参阅 MSBuild 项目文件架构引用。