免责声明:在此示例中,我直接修改了 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),"(?i)^ConnectionString\."))' == 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 文件。