2012-07-27 84 views
1

我有一個.Net控制檯應用程序,它具有一個App.Config/MyApplicationConsole.exe.config文件。這其中包含通過VS的屬性管理器中設置的設置,基本上看起來像這樣:修改.Net應用程序.exe.config文件通過Powershell設置值

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="My.Applications.Namespace.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <applicationSettings> 
    <My.Applications.Namespace.Properties.Settings> 
     <setting name="SettingsKeyABC" serializeAs="String"> 
     <value>SomeOtherValue</value> 
     </setting> 
     <setting name="SettingsKeyXYZ" serializeAs="String"> 
     <value>True</value> 
     </setting> 
    </Siemens.Med.CTE.PMP.Applications.JobExecutor.Properties.Settings> 
    </applicationSettings> 
    <system.diagnostics> 
    <trace> 
     <listeners> 
     <add name="Gibraltar" type="Gibraltar.Agent.LogListener, Gibraltar.Agent" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 
</configuration> 

現在我想/需要做的是修改(「真」)值「SettingsKeyXYZ」設置,最好通過powershell(如我的同事設置)。有誰知道如何做到這一點?我發現的所有內容都是Web.Configs的示例,它們與VS創建的不同。

+0

xml文本無效。第10行標記的結束標記(My.Applications.Namespace.Properties.Settings)在哪裏? – 2012-07-27 11:02:31

回答

2

首先,xml文本無效。第10行標記(My.Applications.Namespace.Properties.Settings)的結束標記在哪裏?我改變了第10行以匹配結束標籤。

加載文件(如xml),您必須將'My.Applications.Namespace.Properties.Settings'標記放在引號中,否則powershell將嘗試解析點之間的每個值作爲標記),將值更新爲假,然後保存該文件。

[xml]$xml = Get-Content c:\App.Config 
$xml.configuration.applicationSettings.'My.Applications.Namespace.Properties.Settings'.setting.value='False' 
$xml.Save('c:\App.Config') 
+0

謝謝,謝謝你調整我的問題的文本。關於你的回答:我沒有看到你如何訪問'SettingsKeyXYZ'設置在這裏具體(可能會更多)。我會怎麼做? – 2012-07-27 12:40:30

+0

您想要將'SettingsKeyXYZ'更改爲其他內容嗎? – 2012-07-27 12:46:49

+0

哦,不,我已經更新了上面的例子 - 我可能有幾個節點,它們的名稱是='SomeKey'屬性,我想只更新節點,在本例中, name ='SettingsKeyXYZ'屬性。 – 2012-07-27 12:52:50

相關問題