NLog.config转换

时间:2017-09-07 10:03:16

标签: asp.net webforms nlog

我有一个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目录中复制副本。

1 个答案:

答案 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>