.net Machine.Config在哪里?
我想应用一个更改,以便我可以为我的C#3.5应用程序使用服务器GC设置-我可以通过编辑.net Machine.Config在哪里?,.net,garbage-collection,.net,Garbage Collection,我想应用一个更改,以便我可以为我的C#3.5应用程序使用服务器GC设置-我可以通过编辑machine.config文件来实现这一点 唯一的问题是我不知道它在哪里 如何在多台不同的机器上以可重复的方式找到此文件的路径32位 %windir%\Microsoft.NET\Framework\[version]\config\machine.config %windir%\Microsoft.NET\Framework64\[version]\config\machine.config 64位
machine.config
文件来实现这一点
唯一的问题是我不知道它在哪里
如何在多台不同的机器上以可重复的方式找到此文件的路径32位
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
64位
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
[版本]
应等于v1.0.3705
,v1.1.4322
,v2.0.50727
或v4.0.30319
v3.0
和v3.5
只包含到v2.0.50727
的附加程序集,因此不应该有config\machine.config
v4.5.x
和v4.6.x
存储在v4.0.30319
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG中,但这取决于。。。我的建议是:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG 及
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG为了绝对确定,请在ASP.NET页面上贴上标签并运行以下代码:
labelDebug.Text = System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile;
我相信这是毫无疑问的 您可以在powershell中运行此命令:
[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config
为.net 4输出此信息:
[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config
但是请注意,这可能会根据.net是以32位还是64位运行而变化,这将分别导致
\Framework\
或\Framework64\
。在asp.net应用程序中使用此选项
using System.Configuration;
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath);
您可以在powershell中运行此操作: 复制并粘贴到power shell中 [System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile 矿山产量为: C:\Windows\Microsoft.NET\Framework\v2.0.50527\config\machine.config
这是一个很晚的回复,但是如果有人仍然希望打开
machine.config
并查看/更新配置,下面是一个使用powershell的IIS配置示例
$machineConfig = [System.Configuration.ConfigurationManager]::OpenMachineConfiguration()
$deployment = $machineConfig.GetSection("system.web/deployment")
$deplyment.Retail = $true
$machineconfig.save()
或者在powershell
[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
中运行此命令。在powershell中,您可以省略“System.”,只需使用[Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
。(特别是.NET 4.0的32位路径。64位在…\Framework64\…#pedantry中)请注意,如果运行64位PowerShell,这将返回64位路径。可能值得一提的是,在is v2.0.50727和v4.0.30319中可以找到machine.config的仅有两个[version]目录,由于v3.0和v3.5使用.NET 2.0 CLR和v4.5.x是插入式替换,因此没有自己的框架目录。哦,如果你运气不好,仍然在使用.NET 1.1,那么可能有一个Framework/v1.1.4322目录。@ScottLerch在我的系统上不是这样的。有v1.0.3705、v1.1.4322、v2.0.50727、v3.0、v3.5和v4.0。30319@KevinPanko是的,我已经提到了关于1.1的警告,但也应该提到1.0。。。只是很长一段时间没有处理这两个问题了。但是,您不应该在v3.0或v3.5目录中找到machine.config,如果您这样做,我也不知道为什么。请记住在以管理员身份运行记事本的情况下打开.config文件,这样当您保存某些内容时,系统不会将您的更改保存在基于32位或64位的错误文件夹中。@afshinteymori我不是100%确定,但如果您以非管理员模式运行记事本,您应该无法保存任何更改,因为您没有对文件的写访问权限?(另外,如果您在管理中运行或不运行,则在32位或64位中保存时不应更改)。