c# - 32 位和 64 位 C#.NET 中的多目标

标签 c# .net

假设我有一个基于 C# 开发的 Windows 应用程序。我想确保它适用于 32 位和 64 位。但我不想一次又一次地更改配置设置或应用程序设置。有没有办法测试这两种变体?

最佳答案

有几个选项。

  1. 您可以针对 AnyCPU。如果您的程序是 100% C#/托管代码,没有 native 依赖项,​​这将导致它在 64 位操作系统上运行 64 位,在 32 位操作系统上运行 32 位。

  2. 目标 x86。这将导致它在任何地方运行 32 位,这在 64 位 Windows 上正常工作(通过 WOW64)。如果您使用 native (32 位)库,这也能正常工作。

  3. 进行两次构建和两次单独的部署。这允许您使用 native 代码并仍然在 64 位操作系统上运行 64 位,但工作量要大得多。

由于 32 位应用程序在 64 位操作系统上运行良好,因此很少有理由在 64 位 native 上运行该程序。这通常只有在您处理大量数据并且确实需要访问比 32 位进程更大的内存空间时才真正有用。在 .NET 中,这通常意味着如果您要为程序使用超过 1.2-1.6gb 的 RAM,则需要构建 64 位。否则,32 位在任何地方都可以正常工作。

关于c# - 32 位和 64 位 C#.NET 中的多目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11399805/

相关文章:

.net - 绑定(bind)到 ExpandoObject。属性更改不起作用

c# - 如何在 Windows Phone 8.1 中使用 WCF 服务

c# - 从多个 sql 表 Entity Framework web api 返回数据

c# - 有没有比 System.Byte.Parse ("0xAA"更好的东西来获得 F# 和 C# 上的单个字节?

.net - 如何使用 MAUI 启动应用程序修复以下错误

c# - 如何对数字字符串列表进行排序?最好使用 LINQ

c# - 如何测量 WCF 出站连接数?

c# - .replace 替换错误的值

c# - nunit-console 不运行使用 TestCase 属性参数化的测试

c# - 使用c#将数据库从一台服务器复制到另一台服务器