1

App.Config / MyApplicationConsole.exe.config ファイルを持つ .Net コンソール アプリケーションがあります。これには、VS のプロパティ マネージャーを介して設定された設定が含まれており、基本的には次のようになります。

<?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」設定の(「True」)値を、できればpowershellを介して(同僚が設定したように)変更することです。誰もこれを行う方法を知っていますか? 私が見つけたのは、VSによって作成されたものとは少し異なるように見えるWeb.Configのサンプルだけでした。

4

1 に答える 1

2

まず、xml テキストが無効です。行 10 タグ (My.Applications.Namespace.Properties.Settings) の終了タグはど​​こにありますか。終了タグに合わせて 10 行目を変更しました。

ファイルを (xml として) ロードします。「My.Applications.Namespace.Properties.Settings」タグを引用符で囲む必要があります。そうしないと、powershell はドット間の各値をタグとして解析しようとします)、値を False に更新してから保存します。ファイル。

[xml]$xml = Get-Content c:\App.Config
$xml.configuration.applicationSettings.'My.Applications.Namespace.Properties.Settings'.setting.value='False'
$xml.Save('c:\App.Config')
于 2012-07-27T11:06:13.660 に答える