1

CodeAssassin.ConfigTransformTransformやVS ビルドへの、web.*.configまたはVS ビルド時のNuGet パッケージ。app.*.configweb.*.config.transformedapp.*.config.transformed

ただし、フォームの構成ファイルがある場合はどうなります{arbitrary-name}.configか?

たとえば、MyAssembly.dll.configその変換ルールセットMyAssembly.dll.debug.config&MyAssembly.dll.release.config

CodeAssassin.ConfigTransformこれらのファイル パターンでは機能しないようです。

4

2 に答える 2

0

免責事項: この例では、CodeAssassin.ConfigTransform.targets を直接変更しました。ただし、別の .targets ファイルを作成し、それを .csproj で参照する必要があります。

ConnectionString.config を (例として) 追加してから、変換を追加します。 ファイルを変換する

これを .targets ファイルに追加します (構成名は正規表現と一致する必要があります -(?i)^ConnectionString\.この場合):

<Target Name="TransformAllConnectionStringConfigTransformFiles"
        Condition="'$(WebProjectOutputDir)'!=''"
        BeforeTargets="Compile">

  <ItemGroup>
    <ConnectionStringConfigTransformFile Include="@(None);@(Content)" Condition="'$([System.Text.RegularExpressions.Regex]::IsMatch(%(Filename),&quot;(?i)^ConnectionString\.&quot;))' == true and '%(Extension)'=='.config'" />
  </ItemGroup>

  <TransformXml Source="ConnectionString.config" Destination="%(ConnectionStringConfigTransformFile.Identity).transformed" Transform="@(ConnectionStringConfigTransformFile)"
                Condition="'@(ConnectionStringConfigTransformFile)'!=''" />

  <CreateItem Include="%(ConnectionStringConfigTransformFile.Identity).transformed"
              AdditionalMetadata="CopyToOutputDirectory=Always">
    <Output TaskParameter="Include" ItemName="Content"/>
  </CreateItem>

</Target>

ビルドすると、.transformed ファイルが作成されます。

.変換されたファイル

于 2013-01-18T16:21:48.713 に答える
0

ターゲットのソース コードを見ると、任意の .config ファイルを変換できるように変更するのは非常に簡単に見えます。実際、どの XML ファイルも変換できるはずだと思います。

明日、そのリポジトリをフォークして、これを試します。

于 2012-10-09T14:31:32.020 に答える