c# - 将 .net 应用程序从 32 位转换为 64 位

标签 c# .net visual-studio 32bit-64bit

我有一个 .net 应用程序,

  • 类库(目标平台设置为任何 CPU)
  • Winform 应用程序(目标平台设置为任何 CPU)
  • 安装程序(目标平台设置为 X86,检测到的依赖项设置为 .net framework(x86))

现在,当我在 64 位计算机上通过 setup.exe 安装此应用程序时,它安装在 Program Files [x86] 文件夹中;我想这是在 64 位应用程序上模拟 32 位环境的 WoW64 功能。

现在,当客户要求将其转换为 64 位时,如果 32 位版本本身在 WoW64 中运行良好,为什么对他来说很重要?将其转换为 64 位会带来性能优势吗?

当我尝试将它转换为 64 位时,我是否需要为所有更改它,即,

  • 类库(将目标平台更改为 64)(如果我跳过这一步会怎么样?)
  • Winform 应用程序(将目标平台更改为 64)(如果我也跳过这个怎么办?)
  • 安装程序(将目标平台更改为 64)[检测到的依赖项列表未显示任何 .NET Framework x64 选项,为什么?]

请推荐。

最佳答案

无需转换,您的应用已作为 64 位进程运行。因为你在 EXE 项目上使用了 AnyCPU。您将它安装到错误的文件夹中,但如果没有其他进程尝试以编程方式启动您的文件夹,那也没关系。这是非常罕见的。

从 TaskMgr.exe 的“进程”选项卡验证这一点。 32 位进程在其进程名称后有 *32。

通过将安装项目的 TargetPlatform 设置更改为 x64 让您的客户满意,这样它就可以安装在 c:\program files 中。花你几分钟时间。

关于c# - 将 .net 应用程序从 32 位转换为 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7076996/

相关文章:

c# - 为什么命名空间不被识别?

c# - 多线程奇点

visual-studio - F# VS2019 Windows 窗体

c# - 不再需要时自动关闭 TIBCO EMS 连接

c# - 如何防止 System.IO.File.Open 和 FileMode.Truncate 导致文件更改

c# - 没有尾部斜杠的基本 Uri

c# - Wait() 导致 UI 线程挂起 - 什么时候应该使用 Wait()?

c# - .NET 套接字缓冲区溢出没有错误

c++ - IID_PPV_ARGS 和取消引用 NULL

c# - 按长度对命名空间进行排序