Visual Studio 2010 の "Build Deployment Package" (略して BDP) を数か月間使用しています。それはうまく機能し、私たちが望んでいた基本的な要件を満たしています.
さらに一歩進んで、BDP によって生成された Project.SetParameters.xml ファイルで変更できるように、カスタム構成を取得する方法を理解することにしました。これを使用する方法は、この展開パッケージを構築し、それを顧客のサーバーに配信することです。各サーバーは異なる場合があるため、SetParameters.xml をサーバーに保持し、後でアップグレードするために zip ファイルを置き換えるだけです。WebDeploy ツールを使用して、Build Deployment Package によって作成された付属の cmd ファイルを使用してデプロイします。
私は非常にクールなこの変換 Web 構成に取り組み始めましたが、完全に理解しているとは思いません。web.config 内で通常の項目 (接続文字列、Web サーバー設定など) を実行させることはできますが、他の DLL の一部である構成セクションのパラメーターを生成することはできません。 web.config に含まれています。例えば:
例えば。これは、他のいくつかのアセンブリを参照する Web プロジェクトの web.config であるとします。
<?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="SomeAssembly.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<SomeAssembly.Properties.Settings>
<setting name="ExportLocation" serializeAs="String">
<value>C:\MediaExports\</value>
</setting>
</SomeAssembly.Properties.Settings>
</applicationSettings>
</configuration>
私の変圧器は次のとおりです。
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="SomeAssembly.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<SomeAssembly.Properties.Settings>
<setting name="ExportLocation" value="[MakeMeSetParameter.xml-Entry]" serializeAs="String" xdt:Transform="SetAttributes" xdt:Locator="Match(value)"/>
</SomeAssembly.Properties.Settings>
</configuration>
サンプル project.xml (上記のものではなく、私のプロジェクト用に生成されたもの):
<?xml version="1.0" encoding="utf-8"?>
<parameters>
<setParameter name="IIS Web Application Name" value="SomeIISNameHere" />
<setParameter name="SomeAssemblySetting-SomeDescriptionOddPlaceforit" value="TheValueToBePlaced" />
<setParameter name="SomeGeneratedValueIwant" value="TheNewMediaExportLocation"/>
</parameters>
Project.SetParameters.xml の出力を生成するために、トランスフォーマー web.config に何を入力すればよいかわかりません。「トークン化された」パラメーター。
今、私はこれを完全に理解していないことを知っていますが、プロジェクトが参照する他のアセンブリのカスタム構成を使用している人々の例を見つけることができないようです. ほとんどすべての例は、接続文字列やその他の一般的な web.config アイテムに関連しているようです。
私がやろうとしていることに最も近いのはhttp://sedodream.com/2010/11/11/ASPNETWebApplicationPublishPackageTokenizingParameters.aspxでしたが、設定したい他のアセンブリのカスタム設定パラメーターではなく、接続文字列に関するものです。これらのトークンを web.config 内のあらゆるものに対して作成したいと考えています。
それで、私の質問は次のとおりです。BDP が web.config 内のカスタム構成用の追加の setParameter ノードを使用して SetParameters.xml を生成できるように、トランスフォーマー構成ファイルを構成するにはどうすればよいですか?