TFSBuild: Dicas

by Stiven 25. September 2009 04:57

Depois de alguns dias apanhando no TFSBuild, separei algumas dicas simples mas que valem ouro na hora de montar o script do build (TFSBuild.proj). Os exemplos (linhas de código) abaixo foram definidas somente como exemplo.

Boa prática é criar variáveis para caminhos (path),  pastas (folder)
<PropertyGroup
>
    <
WebDeployFolder>\\Servidor1</WebDeployFolder
>
    <
WebSiteName>WebSiteDemo</WebSiteName
>
</
PropertyGroup>

Enviar mensagem
<Message Text="WorkspaceName: $(WorkspaceName)"></Message>

Mensagem utéis
<Message Text="BinariesRoot: $(BinariesRoot)"></Message>
<
Message Text="OutDir: $(OutDir)"></Message
>
<
Message Text="SolutionRoot: $(SolutionRoot)"></Message
>
<
Message Text="BuildDirectory: $(BuildDirectory)"></Message
>
<
Message Text="BuildProjectFolderPath: $(BuildProjectFolderPath)"></Message
>
<
Message Text="DropLocation: $(DropLocation)\$(BuildNumber)"></Message>
<Message Text="WorkspaceName: $(WorkspaceName)"></Message>
<
Message Text="BuildUri: $(BuildUri)"></Message>
<
Message Text="TeamFoundationServerUrl: $(TeamFoundationServerUrl)"></Message>

Excluir um determinado arquivo. Mas lembre-se em qual momento (Target) deseja fazer essa operação
<Target Name="AfterBuild">
      <
Delete Files="$(WebDeployFolder)\$(WebSiteName)\Web.config"></Delete>
</
Target>

Excluir uma determinada pasta do build
<ItemGroup>
      <
ExcludeFromBuild Include="$(SolutionRoot)\WebSite1\WebSite1\"
/>
</
ItemGroup>

Criando uma variável com uma lista de arquivos
<ItemGroup>
     <
BinToCopy Include="$(SolutionRoot)\$(WebSiteName)\$(WebSiteName)\Bin\*.dll" />
     <
FilesToCopy Include="$(SolutionRoot)\$(WebSiteName)\$(WebSiteName)\**\*.*" />
</
ItemGroup>

Copiando determinados arquivos para uma pasta

<Target Name="AfterDropBuild">

<ItemGroup>
     <
BinToCopy Include="$(SolutionRoot)\$(WebSiteName)\$(WebSiteName)\Bin\*.dll" />
</ItemGroup> 

    
<Copy SourceFiles="@(BinToCopy)" DestinationFiles="@(BinToCopy ->'$(WebDeployFolder)\$(WebSiteName)\Bin\%(Filename).dll')" ContinueOnError="false" SkipUnchangedFiles="false" />
</Target>

Criando uma variável com determinados arquivos e com parâmetros de exclusão, e copiando os arquivos
<CreateItem Include="$(SolutionRoot)\$(WebSiteName)\$(WebSiteName)\**\*.*" Exclude="*.pdb;*.config;*.refresh" >
     <
Output ItemName="SiteFiles" TaskParameter="Include" />
</
CreateItem>

<Copy SourceFiles="@(SiteFiles)" DestinationFiles="@(SiteFiles ->'$(WebDeployFolder)\$(WebSiteName)\%(RecursiveDir)%(Filename)%(Extension)')" ContinueOnError="true" SkipUnchangedFiles="false" />

Popula as 3 saídas (arquivos adicionados (get), sobrescritos (replaces) e excluídos (deletes))
<PropertyGroup>
     <IncrementalGet>true</IncrementalGet>
     <
GetPopulateOutput>true</GetPopulateOutput>
</
PropertyGroup>

O post do Aaron Hallberg fala sobre como criar uma task para recuperar essas variáveis.

Tafera customizada, fazendo referência a uma dll
<UsingTask TaskName="TaskBuild.MyTask" AssemblyFile="C:\TaskBuild.dll" />

<ItemGroup>
    <AdditionalReferencePath Include="C:\" />
</ItemGroup>

<Target Name="AfterDropBuild">
    <MyTask  />
</Target>

Path TFS Cache
C:\Documents and Settings\[UserName]\Local Settings\Application Data\Microsoft\Team Foundation\[Version]\Cache

Microsoft.TeamFoundation.Build.Targets
http://msdn.microsoft.com/en-us/library/aa337604.aspx

30 propriedades uteís
http://www.woodwardweb.com/vsts/30_useful_team.html
São mais de 70, mas no post citado acima são listadas somente 30 (as mais úteis).

Por enquanto é isso!

;)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Dicas | TFS

TFS - Erro TF30004 e TF30171 ao tentar criar projeto

by Stiven 29. June 2009 11:58

Pessoal,

um dica ao para que vai tentar criar um Team Project e ao tentar ocorre o seguinte erro: 

...


TF30004: The New Team Project Wizard encountered an unexpected error while initializing the Microsoft.ProjectCreationWizard.Reporting plug-in. 

Explanation
TF30171: The Microsoft.ProjectCreationWizard.Reporting plug-in used to create the new team project could not be initialized and returned the following error: TF30224: Failed to retrieve projects from the report server. Please check that the SQL Server Reporting Services Web and Windows services are running and you have sufficient privileges for creating a project.


...

Caso tenha instalado o Visual Studio 2008 Service Pack 1 antes do Team Explorer, reinstale o Visual Studio 2008 Service Pack 1;

Caso ainda não tenha instalado o Visual Studio 2008 Service Pack 1, então instale.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

TFS | Service Pack

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen

Sobre o autor



Meu nome é Stiven Fabiano da Câmara e sou desenvolvedor de software especializado na plataforma .NET da Microsoft, utilizando a linguagem Visual C#.