如何将.NET Core项目编译为“Any CPU”架构?

10

以前,.NET Framework 能够在 Visual Studio 工具栏中选择“任何 CPU”模式,制作同时支持32位/64位的EXE文件。这些 EXE 文件在 Win32 上自动运行为32位,在 Win64 上则自动运行为本地的 64 位。

新的 .NET Core 3.1 使用了不同的构建过程,不仅通过 VS 中的“Build”按钮,而且是通过终端中的“dotnet publish”命令进行构建。然而,这里只有“win-x86”和“win-x64”架构是可用的。“win-AnyCPU”是不可用的。VS 2019 工具栏除了“AnyCPU”之外没有显示出任何东西,但是选择无效,使用 CLI 架构所选的上一次执行结果将被用于通过“Build”按钮制作的EXE文件。

如何在 .NET CLI 中制作 AnyCPU 的EXE文件?


你尝试过只使用win吗? - Guru Stron
尝试了“win”,但不起作用(错误NETSDK1084)。 - Alexander Tauenis
@HansPassant:但这是新的.NET Core项目的默认设置吗? - Dave Doknjas
1个回答

3
据我所知,在.NET Core中不支持AnyCPU的概念(即使在Visual Studio中可以看到该设置)。基本上,您需要为每个要支持的运行时标识符发布应用程序(例如,您需要为x86和x64分别发布应用程序,或者为linux-x64发布一个应用程序等)。
这是一份运行时标识符列表:

https://learn.microsoft.com/en-us/dotnet/core/rid-catalog

除了上面提到的运行时标识符外,如果您使用UWP API,您可能需要针对更具体的目标,例如net6.0-windows10.0.18362

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接