以前 .NET Framework 能够在 Visual Studio 工具栏中选择的“任何 CPU”模式下制作组合 32/64 位 EXE。此类 EXE 在 Win32 上自动为 32 位,在 Win64 上为本机 64 位。
新的 .NET Core 3.1 使用不同的构建过程,不仅通过 VS 中的“构建”按钮,而是终端中的“dotnet 发布”命令是新的和主要的。但是,只有“win-x86”和“win-x64”架构在这里工作。“win-AnyCPU”不起作用。VS 2019 工具栏除了“AnyCPU”外不显示任何内容,但选择不起作用,最后使用的 CLI 架构用于通过“构建”按钮制作的 EXE 文件。
如何在 .NET CLI 中制作 AnyCPU EXE?
我需要在 .NET Core 应用程序中获取 Windows 默认代码页。即英语系统上为 1252、西里尔语系统上为 1251、希腊语系统上为 1253 等。以前在 .NET Framework 4 和 Mono 中,可以通过 Encoding.Default 轻松完成。程序迁移到.NET Core 3.1后,现在需要在每台PC上手动设置代码页号。这对于某些用户来说并不容易。
如何返回旧(系统)代码页的自动检测?无法读取 Windows 注册表来检测系统设置,因为应用程序还应该在 Linux 上运行,并使用从 Windows PC 接收(或发送到 Windows PC)的外部数据。
其他使用ANSI代码页进行数据输入和输出的软件不能被重写。
也许 OEM 代码页也很有趣(为了与控制台软件无缝交互,该软件甚至仍然使用 DOS 代码页)。