获得64位版本的machine.config

时间:2011-05-13 13:56:11

标签: c# configuration configurationmanager machine.config

现在,我正在拨打以下一行

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

结果如下 cnf.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位版本而不需要使用ConfigurationFileMaps - 例如 Configuration examples from Msdn

更新评论

  • 现在,平台设置设置为Any Cpu
  • 我在一个继承自标准应用程序的System.Configuration.Install.Installer的类中运行代码
  • 代码所在的项目在Visual Studio Installer安装项目中作为自定义操作运行

1 个答案:

答案 0 :(得分:1)

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