Domanda

Dopo MSBuild ha costruito la mia soluzione (con un sito web asp.net), e il progetto webdeployment ha costruito e messo il sito web nei _PublishedWebsites directory:

c:. \ Mybuilds \ buildName \ Daily_20090519.3 \ Release_PublishedWebsites \ MyWebsite

Come faccio a copiare questo per la directory in cui fissa IIS punti per il sito web di prova?

Ho trovato un sacco di frammenti di codice, ma io non riesco a trovare uno che terrà conto del fatto che questo nome directory modifiche.

È stato utile?

Soluzione

Questo è abbastanza facile. È possibile modificare il progetto e inserire qualcosa di simile a quanto segue.

<PropertyGroup>
  <OutputDest>$(MSBuildProjectDirectory)\..\OutputCopy\</OutputDest>
</PropertyGroup>
<Target Name="AfterBuild">
  <!-- Create an item with all the output files -->
  <ItemGroup>
    <_OutputFiles Include="$(OutputPath)**\*" Exclude="$(OutputPath)obj\**\*" />
  </ItemGroup>
  <!-- You probably don't want to include the files in the obj folder so exclude them. -->

  <Message Text="OutputDest : $(OutputDest)" />
  <Copy SourceFiles="@(_OutputFiles)"
        DestinationFiles="@(_OutputFiles->'$(OutputDest)%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>

E 'questo quello che stai cercando?

Il mio libro: All'interno del Microsoft Build Engine: Utilizzo di MSBuild e Team Foundation Build

Altri suggerimenti

sto usando tecnica diversa.

<PropertyGroup>
    <BinariesRoot>c:\BinariesForIis\</BinariesRoot>
</PropertyGroup>

Il c:\BinariesForIis\ sarà utilizzato per i binari di uscita compilato diretti (prima copia ...\Daily_20090519.3\Release_ ...).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top