4

接続文字列を作成または更新するためにweb.configの変換ルールを構成しようとしています。ルールは単純です:

  1. 指定された名前( "MyDatabase")の接続文字列が存在する場合は、触れないでください。

  2. 指定された名前の接続文字列がない場合は、挿入する必要があります。

しかし、これが可能かどうかはわかりません。web.config.transformで「add」要素を指定すると、そのような名前の要素がすでに存在する場合でも、connectionString要素が挿入されます。ただし、xdt:Transform = "Replace"を指定すると、置き換えられます。私はこの主題に関する良い記事を見つけました、そしてそれはシナリオ置換、挿入、削除をリストします。しかし、「InsertIfNotExists」が必要です。

ヘルプをいただければ幸いです。

4

2 に答える 2

3

ブログのカスタムweb.config変換とマージでは、要素が欠落している場合は要素を挿入し、要素がすでに存在する場合は要素をそのままにしておく拡張機能MergeおよびMergeBefore変換について説明しています。

カスタム変換を使用するには、変換XMLに関連する名前空間をインポートする必要があります。

<xdt:Import assembly="AppHarbor.TransformTester"
    namespace="AppHarbor.TransformTester.Transforms"/>
于 2012-08-05T12:37:01.897 に答える
0

別の解決策として、configトランスフォームを介してweb.configの要素を更新したいが、その要素が存在しない場合は、web.configに空の要素を追加し、次のようにweb.Release.configを構成できます。

web.config:

<system.web>
<httpModules>
</httpModules>
...

web.Release.config:

<system.web>
<httpModules>
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" xdt:Transform="Insert" />
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" xdt:Transform="Insert" />
</httpModules>
...

このようにして、展開時に新しいプロパティをWeb構成にマージできます。

于 2017-01-10T18:48:16.093 に答える