机器配置文件在哪里?

474

我想应用一些更改,以便在我的C# 3.5应用程序中使用服务器GC设置-可以通过编辑 machine.config 文件来实现。

唯一的问题是我不知道它在哪里。

如何以可重复的方式在多台不同的计算机上找到此文件的路径?

9个回答

638

32位

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64位

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 

[version] 应该等于 v1.0.3705v1.1.4322v2.0.50727 或者 v4.0.30319

v3.0v3.5 只包含额外的程序集,与 v2.0.50727 相同,因此不需要 config\machine.config 文件。 v4.5.xv4.6.x 存储在 v4.0.30319 中。


26
值得一提的是,你在机器上只能在v2.0.50727和v4.0.30319这两个版本目录中找到machine.config文件,因为v3.0和v3.5使用的是.NET 2.0 CLR,而v4.5.x是替换版本,因此没有自己的框架目录。如果你还不幸地在使用.NET 1.1,则可能会有一个Framework/v1.1.4322目录。 - Scott Lerch
2
@KevinPanko,是的,我已经提到了1.1的注意事项,但也应该提到1.0...只是很久以前就没有处理过这些问题了。如果您在v3.0或v3.5目录中找到machine.config文件,则不应该存在,如果确实存在,那么我也不知道为什么会这样。 - Scott Lerch
请记得使用以管理员身份运行的记事本打开.config文件,这样当您保存某些内容时,系统不会根据32位或64位将更改保存在错误的文件夹中。 - Afshin Teymoori
@AfshinTeymoori 我不是100%确定,但如果你在非管理员模式下运行记事本,你应该无法保存任何更改,因为你没有对文件的写访问权限?(而且无论你以管理员身份运行还是不运行,保存在32位或64位中也不应该改变)。 - Peter
@BarclayVision 如果您没有访问系统驱动器的权限,那么您将无法修改 machine.config 文件,唯一的方法是联系托管提供商(但我猜即使这样也不会有帮助)。 - Peter
显示剩余4条评论

104

您可以在powershell中运行此命令:

[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile

以下是 .net 4 的输出结果:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config

请注意,这可能会根据 .net 运行的是32位还是64位而发生变化,分别会导致 \Framework\\Framework64\

5
在PowerShell中,您可以省略"System."并只使用[Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile。(另外,这特别是.NET 4.0的32位路径。64位在...\Framework64... #小题大做) - brianary
3
请注意,如果您正在运行64位PowerShell,则此操作将返回64位路径。 - ForNeVeR

46
为了确保,给一个ASP.NET页面贴上Label并运行以下代码:
labelDebug.Text = System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile;

我相信这将毫无疑问!


15
在 PowerShell 中运行此命令:[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile,以获取系统的配置文件路径。 - Daniel Little

16

有点视情况而定......我的路径是:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

还有

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG


4
  1. 打开Windows运行命令。快捷键=>windows键+r
  2. 输入"microsoft.net" - MS .Net文件夹会打开
  3. 打开"Framework"/"Framework64"文件夹(根据你的处理器选择)。
  4. 选择特定的FW版本文件夹,例如"v4.0.30319"
  5. 打开config文件夹
  6. Machine.config将在那里提供。祝好。

3

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG


1
在你的asp.net应用程序中使用这个:


using System.Configuration;
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath);

1
这是一份晚回复,但如果有人仍在寻找打开 machine.config 并查看/更新配置的方法,这里有一个使用 PowerShell 的 IIS 配置示例。
$machineConfig = [System.Configuration.ConfigurationManager]::OpenMachineConfiguration()

$deployment = $machineConfig.GetSection("system.web/deployment")

$deplyment.Retail = $true

$machineconfig.save()

-2
你可以在PowerShell中运行以下命令: 复制并粘贴以下内容到PowerShell中: [System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile

我的输出结果是: C:\Windows\Microsoft.NET\Framework\v2.0.50527\config\machine.config

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接