2010-11-21 5 views

Répondre

0

Je pense que ce que vous cherchez serait un macro qui effectuerait les actions avant d'appeler publier, puis effectuer des actions supplémentaires. Si vous utilisez également TFS 2010, vous pouvez également personnaliser une définition de construction pour faire ce que vous recherchez.

3

Bien sûr, c'est possible. Je pense que vous avez besoin de MSBuild. Il a déjà un lot default tasks comme la copie, suppression, etc. De plus, il y a beaucoup de tâches tiers parti pour MSBuild comme SDCTasks ou Community Tasks

Par exemple ici, l'une des différentes façons de déployer site web (en utilisant SDCTasks). Dans cet exemple, la solution de site Web et la solution de services Web seront construites et en cas de succès, elles seront publiées sur un serveur distant et correctement configurées avec les fichiers de configuration de la version finale.

<Import Project="$(MSBuildExtensionsPath)\SDCTasks\Microsoft.Sdc.CommonWOBizTalk.tasks"/> 
    ... 
    <ItemGroup> 
     <SolutionToBuild Include="$(BuildProjectFolderPath)/../../website.sln"> 
      <Targets></Targets> 
      <Properties></Properties> 
     </SolutionToBuild> 

     <SolutionToBuild Include="$(BuildProjectFolderPath)/../../services.sln"> 
      <Targets></Targets> 
      <Properties></Properties> 
     </SolutionToBuild> 

    </ItemGroup> 

    <PropertyGroup> 
    <PublishFolder>\\myservername\deployto</PublishFolder> 
    </PropertyGroup> 

    <Target Name="AfterCompile" DependsOnTargets="PublishWebSite;PublishServices;SetConfiguration"/> 

    <Target Name="PublishWebSite"> 
    <Folder.CleanFolder Path="$(PublishFolder)" Force="True" /> 
    <Folder.CopyFolder Source="$(OutDir)_PublishedWebsites\MyWebSite" Destination="$(PublishFolder)" /> 
    </Target> 

    <Target Name="PublishServices"> 
    <MakeDir Directories="$(PublishFolder)\Services"/> 
    <Folder.CopyFolder Source="$(OutDir)_PublishedWebsites\MyService" Destination= "$(PublishFolder)\ Services" /> 
    </Target> 

    <Target Name="SetConfiguration"> 
     <Copy SourceFiles="$(OutDir)_PublishedWebsites\MyWebSite\WebRelease.config" DestinationFiles="$(PublishFolder)\web.config" /> 
     <Copy SourceFiles="$(OutDir)_PublishedWebsites\MyService\WebRelease.config" DestinationFiles="$(PublishFolder)\Services\web.config" /> 
    </Target> 
Questions connexes