Pergunta

Depois de MSbuild construiu a minha solução (com um site asp.net), eo projeto webdeployment construiu e colocar o site nos _PublishedWebsites diretório:

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

Como faço para copiar isso para o diretório fixo, onde o IIS pontos a para o site de teste?

Eu encontrei um monte de trechos de código, mas eu não consigo encontrar um que vai levar em conta o facto do nome deste diretório alterações.

Foi útil?

Solução

Este é muito fácil. Você pode editar o projeto e inserir algo semelhante ao seguinte.

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

É isso que você está procurando?

My Book: Dentro do Microsoft Build Motor: Usando MSBuild e Team Foundation Build

Outras dicas

Eu estou usando técnica diferente.

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

O c:\BinariesForIis\ será usada para binários de saída compilado DIRECTOS (antes da cópia para ...\Daily_20090519.3\Release_ ...).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top