我有一个NLog.config文件,我想在发布我的网站之前进行转换。类似于web.config的转换方式。我该如何做到这一点?我找不到任何有关如何做到这一点的可靠资源。
我尝试将变换添加到csproj
<Target Name="BeforeBuild" Condition="exists('NLog.$(Configuration).config')">
<Message Text="Tranforming NLog..."/>
<TransformXml Source="NLog.config" Transform="NLog.$(Configuration).config" Destination="$(OutputPath)\NLog.config" />
</Target>
还将NLog添加到csproj:
<Content Include="NLog.config">
<SubType>Designer</SubType>
</Content>
<None Include="NLog.aws-prod.config">
<DependentUpon>NLog.config</DependentUpon>
</None>
<None Include="NLog.aws-test.config">
<DependentUpon>NLog.config</DependentUpon>
</None>
但是这不会将已转换的NLog.config复制到包目录(或部署到AWS时)。复制原始NLog.config并在/ bin目录中复制副本。
答案 0 :(得分:0)
SlowCheetah似乎做我想要的。我已经尝试过了,我已经对我的csproj进行了更改添加:
<TransformOnBuild>true</TransformOnBuild>
和
<IsTransformFile>True</IsTransformFile>
所以最终的改变是这样的:
<Content Include="NLog.config">
<TransformOnBuild>true</TransformOnBuild>
<SubType>Designer</SubType>
</Content>
<None Include="NLog.aws-prod.config">
<DependentUpon>NLog.config</DependentUpon>
<IsTransformFile>True</IsTransformFile>
<SubType>Designer</SubType>
</None>
<None Include="NLog.aws-test.config">
<DependentUpon>NLog.config</DependentUpon>
<IsTransformFile>True</IsTransformFile>
</None>
它和NLog.config被转换了!!以下目标不是必需的:
<Target Name="BeforeBuild" Condition="exists('NLog.$(Configuration).config')">
<Message Text="Tranforming NLog..."/>
<TransformXml Source="NLog.config" Transform="NLog.$(Configuration).config" Destination="$(OutputPath)\NLog.config" />
</Target>