获取 64 位版本的 machine.config

本文关键字:machine config 版本 获取 | 更新日期: 2023-09-27 17:56:16

现在,我调用以下行

System.Configuration.Configuration cnf = ConfigurationManager.OpenMachineConfiguration();

结果如下中国网.FilePath == C:''Windows''Microsoft.NET''Framework''v4.0.30319''Config''machine.config

我在 32 位 2003 服务器和 64 位 2008 R2 服务器上得到以下结果。理想情况下,我想在 64 位服务器上安装时返回 64 位文件夹。

aka - C:''Windows''Microsoft.NET''Framework64''v4.0.30319''Config''machine.config

有没有办法在不诉诸配置文件映射的情况下获得 64 位版本 - 例如来自 Msdn 的配置示例

更新以征求意见

  • 现在,平台设置设置为任何CPU
  • 我正在从标准应用程序的 System.Configuration.Installer 继承的类中运行代码
  • 代码所在的此项目正在 Visual Studio 安装程序安装项目中作为自定义操作运行

获取 64 位版本的 machine.config

基于上述答案,我创建了一个Visual Studio Installer。 默认情况下,安装程序似乎作为 32 位进程运行。 因此,作为自定义安装程序操作运行的任何 .NET 代码都将以 32 位运行,这就是您只看到 32 位 Machine.Config 而不是 64 位版本的原因。 此 MSDN 文章介绍如何将安装程序创建为 64 位安装程序。 32 位安装程序可以安装 64 位项目,但是,64 位安装程序只能在 64 位操作系统上安装。 您可能需要创建两个安装程序(32 位和 64 位),然后让用户使用适当的版本(如果要保持简单)。 在我对安装程序的TargetPlatform进行更改后,它在TaskManager中显示为64位进程。