2017-09-07 4 views
0

Ich habe eine NLog.config-Datei, die ich vor der Veröffentlichung meiner Website transformiert werden soll. Ähnlich wie web.config transformiert wird. Wie erreiche ich das? Ich konnte keine festen Ressourcen finden, um dies zu tun.NLog.config Transformation

habe ich versucht, das Hinzufügen einer zum csproj verwandeln

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

Auch die NLog hinzugefügt 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> 

aber das ist nicht das transformierte NLog.config zu dem Paketverzeichnis kopiert (oder bei der Bereitstellung in AWS). Die ursprüngliche NLog.config wird kopiert und eine Kopie im Verzeichnis/bin.

+1

Blick in SlowCheetah - https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.SlowCheetah-XMLTransforms – JAZ

+0

Sie können Sie diese Konfigurations verwandeln, nachdem Sie Build-Projekt sind aber bevor du sie veröffentlichst? –

+0

Danke John, das hat mich in die richtige Richtung gezeigt. Ich habe Änderungen nachgeahmt, die von SlowCheetah vorgenommen wurden, und meine csproj manuell bearbeitet. Wird die Lösung unten hinzufügen – Dan

Antwort

0

SlowCheetah scheint zu tun, was ich will. Ich habe es versucht, und ich habe zu meinem csproj Änderungen hinzuzufügen:

<TransformOnBuild>true</TransformOnBuild> 

und

<IsTransformFile>True</IsTransformFile> 

so die letzte Änderung sieht wie folgt aus:

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

Das ist es und NLog.config wird transformiert !! Dieses Ziel unten war nicht nötig:

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