8

ho prossima config nel mio file web.configmsbuild trasformare una configurazione paio di volte

<Target Name="UpdateWebConfigForProjectsBeforeRun"> 
    <ItemGroup> 
     <FilesToTransofm Include="ProjectsDeployBin\Web.*.$(Configuration).config"/>  
    </ItemGroup>  
    <Message Text="Transform file: %(FilesToTransofm.Identity)" /> 
    <TransformXml Source="web.config" 
        Transform="%(FilesToTransofm.Identity)" 
        Destination="web.config" /> 
    </Target> 

quello che sto cercando di fare il suo ottenere tutte le configurazioni dalla directory ProjectsDeployBin e applicare ogni file per web.config principale.

Dopo la prima trasformazione del web.config principale bloccato da msbuild.

Quindi, come posso risolvere questo problema? C'è un altro modo per trasformare il mio web.config dalla collezione di file? Grazie.

risposta

8

Come è stato notato, l'attività TransformXml fornita con Visual Studio 2010 presenta un bug che blocca il file di origine.

Per ovviare al problema, è possibile creare una copia temporanea del file di origine prima di ogni trasformazione. Poiché eseguirai più attività per ogni file di trasformazione (copia e trasformazione), dovrai passare a Target Batching anziché a Task Batching.

Esempio:

<ItemGroup> 
    <FilesToTransofm Include="ProjectsDeployBin\Web.*.$(Configuration).config"/>  
</ItemGroup> 

<Target Name="UpdateWebConfigForProjectsBeforeRun" 
     Inputs="@(FilesToTransofm)" 
     Outputs="%(Identity).AlwaysRun"> 
    <Message Text="Transform file: %(FilesToTransofm.Identity)" /> 
    <Copy SourceFiles="web.config" 
     DestinationFiles="web.pre-%(FilesToTransofm.Filename).temp.config" /> 
    <TransformXml Source="web.pre-%(FilesToTransofm.Filename).temp.config" 
       Transform="%(FilesToTransofm.Identity)" 
       Destination="web.config" /> 
</Target> 

Da un rapido test, sembra che questo bug è stato risolto in Visual Studio 2012, ma non sono in grado di trovare un punto di riferimento/source che documenta che, e il original Connect bug non è più visibile

Problemi correlati