新しいバージョンのインストールの一環として、必要に応じて既存のweb.configファイルを調整するweb.config.deltaファイルがあります。今、AppSettingのキーを追加/更新/削除する方法を知っています(これについては私が知っているすべての記事がそうです)。しかし、私はどのように新しいセクション要素を追加し、新しいセクショングループを追加するかわかりません。xmlmassupdate(msbuild)を使用してweb.configに新しいセクションを追加する方法
ie。これは私のweb.configのすべての新しいものです。それを「デルタ」として適用するためには、何を変更する必要がありますか?
<?xml version="1.0"?>
<configuration xmlns:xmu="urn:msbuildcommunitytasks-xmlmassupdate">
<configSections>
<section xmu:key="name" name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
<section xmu:key="name" name="securityConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Security.Configuration.SecuritySettings, Microsoft.Practices.EnterpriseLibrary.Security, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
<sectionGroup name="authorization" type="Company.Security.Configuration.AuthorizationSectionGroup, Company.Library">
<section name="rowLevelSecurity" type="Company.Security.Configuration.RowLevelAuthorizationSection, Company.Library"/>
<section name="typeBasedSecurity" type="Company.Security.Configuration.TypeAuthorizationSection, Company.Library"/>
</sectionGroup>
</configSections>
<enterpriseLibrary.ConfigurationSource selectedSource="System Configuration Source">
<sources>
<add name="System Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="Security-FileBasedConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
filePath="Config/Enterprise-Security.config" />
</sources>
<redirectSections>
<add sourceName="Security-FileBasedConfigurationSource" name="securityConfiguration" />
</redirectSections>
</enterpriseLibrary.ConfigurationSource>
<authorization>
<rowLevelSecurity defaultProvider="SqlMembershipRowLevelSecurity">
<providers>
<add name="SqlMembershipRowLevelSecurity" type="Company.Security.DataAuthorization.SqlMembershipRowLevelSecurityProvider, Company.Library" applicationName="app1" connectionStringName="SecurityConnection"/>
</providers>
</rowLevelSecurity>
<typeBasedSecurity defaultProvider="SqlInPlaceTypeBasedSecurity">
<providers>
<add name="SqlInPlaceTypeBasedSecurity" type="Company.Security.Providers.SqlEntityTypeFunctionTypeSecurityProvider, Company.Common" applicationName="app1" connectionStringName="SecurityConnection"/>
</providers>
</typeBasedSecurity>
</authorization>
</configuration>
私はこの情報について簡単な情報を見つけることはできないようですが、間違った用語でGoogleで検索しています。
私は同じように追加のビットを交換する必要があります:
<add name="System Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add xmu:key="name" name="System Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" xmu:action="add" />
または私はセクション、sectiongroupとenterpriseLibrary.ConfigurationSource要素のために同じことを行うために持っています?
ありがとうございます!
MSDeployを使ってこれを解決することを検討しましたか? [MIX10のScott Hanselmanの素晴らしいデモ](http://channel9.msdn.com/events/MIX/MIX10/FT14)があります。 – Filburt
提案をお寄せいただき、ありがとうございます。このMass XML Updateを使用する確立されたビルドプロセスがあります。ありがたいことに、マージを行う単体テストを見つけたので、試行錯誤して私が何をする必要があるのか理解することができました。でも、他のデモをチェックしてみてください:) – Jen
ビデオは面白いですが、VS2010はまだ使用していません。 XML-Document-Transformを使用する代わりに、XML一括更新で使用する構文を使用します。どのようなビットを置く必要があるのかを覚えているのです。:)私たちの違いは、コンフィギュレーションマネージャモード(例えば、デバッグ/リリース)ではなく、各クライアントに固有です。 – Jen