2010-11-21 68 views

回答

0

我認爲你要找的是macro,它會在調用發佈之前執行這些操作,然後執行一些其他操作。如果您使用的是TFS 2010,那麼您可以自定義一個構建定義來執行您正在查找的內容。

3

當然這是可能的。我需要的東西MSBuild。它已經擁有了lot default tasks像複製,刪除等,還有一些針對的MSBuild了很多第三方的任務,如SDCTasksCommunity Tasks

例如,下面的各種方式(使用SDCTasks)部署的網站之一。在這個例子中,網站解決方案和Web服務解決方案都將被構建,如果成功,它們將被髮布到某個遠程服務器並且正確配置了發佈版本配置文件。

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