views:

359

answers:

2

Our application uses a combination of ASP.NET and Flex platforms.

I am able to successfully use the build service to build and deploy the .NET web site. That works fine. However, we also have our ActionScript files in TFS and I've created a batch file to successfully compile the ActionScript from the command-line.

I want to create two separate build definitions for the ASP.NET and Flex compilation. Flex obviously doesn't have an SLN file--can I create a build definition file from scratch to support the Flex compile batch file without a solution file? The tasks are fairly simple to create (see below), but I've never built a customized Team Build script without using the Create wizard--and the Create wizard expects you to supply a solution file, which I don't have.

My build script would be very straight-forward:

  1. Get the latest version of the ActionScript files
  2. Run the ActionScript compile batch file
  3. Copy the ActionScript files to the deploy folder
+2  A: 

Absolutely. TFSBuild.proj is an MSBuild file that calls your solution build in TFS. You can modify that to build whatever you want using MSBuild, which is the language which .vbproj and .csproj files are written in. There's a wealth of tasks that MSBuild allows you to use...

Dave Markle
Quick correction: Solution (.sln) files (in Visual Studio 2005 and 2008 anyway) are not in msbuild format. .csproj and .vbproj are..
Alan Christensen
@Alan: true. Edited. But you can run msbuild against .sln files, which is strange but nice.
Dave Markle
A: 

No you don't need a solution file in getting a build done using TFSBuild. A very simple project file could look like this (courtesy Aaron Hallberg):

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
  <Target Name="EndToEndIteration">
    <Exec Command="SomeScript.cmd" />
  </Target>
</Project>

Please investigate this page from Aarons blog. The default targets in a tfsbuild.proj file is actually defined in a "common" targets file and imported into the projfile by this instruction:

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\TeamBuild\Microsoft.TeamFoundation.Build.targets" />

If the import is removed you only need the EndToEndIteration target to get tfsbuild running....

All the best /Niels

Niels Harre