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