Local Build

Building the Solution

To rebuild, edit or debug the code you must use Visual Studio 2015, Community or Professional Edition at a minimum. In addition you must install the following extensions from Visual Studio Gallery: - WiX 3.10 - xUnit.net 1.0

TFS is not required to build nor debugging (for this latter you can use Remote Debugging).

References

Building requires a number of TFS assemblies that cannot be redistributed. You can find the complete list in these files

  • TFS 2013 update 2 or newer: References/2013/PLACEHOLDER.txt
  • TFS 2015: References/2015/PLACEHOLDER.txt
  • TFS 2015 Update 1: References/2015.1/PLACEHOLDER.txt
  • TFS 2015 Update 2: References/2015.2/PLACEHOLDER.txt
  • TFS 2017: References/2017/PLACEHOLDER.txt

if you have TFS installed on your development machine, the assemblies for that version will be loaded automatically from the installation folder.

Solution Configurations

The Build Configuration selected, like Debug-2013 or Release-2015, determines the target TFS version, that is the referenced assemblies.

Sadly, similar to the release of TFS 2013 update 2 when there were breaking changes, TFS 2015 Update 1 introduces a breaking change in the API, so you can find some conditionally compiled code based on the symbols TFS2013, TFS2015 or TFS2015u1.

Version numbers

Assemblies produced locally always have the 2.2.0.0 version, at least until we further enhance the build scripts.

Produce the MSI Windows Installer

The build-installer.proj MSBuild script takes care of generating the Windows Installer MSI file.

The MSI packages all three Aggregator flavors, one for each supported TFS version. The installer detects the TFS version installed and deploy the correct assemblies.

The MSBuild script builds three times the TFS-Aggregator-2.sln solution, one for each supported TFS version. Then the files are copied in a simple layout in the _collect folder. Some WiX source is generated and finally the Setup.Aggregator\Setup.Aggregator.wixproj is launched to produce the MSI package.

Caveat: TFS versions values are all-over the places, e.g. - source code conditional compile - WiX sources - MSBuild project files

To generate the MSI, in an MSBuild Command Prompt (VS2015) or a Developer Command Prompt (VS2013) run

msbuild build-installer.proj /p:Configuration=Release

The Configuration property is mandatory; allowed values are Debug and Release.

Three MSBuild properties BuildSolution, CollectFiles, BuildMSI, whose meaning is self-explanatory, can be used to skip some process’ steps.

msbuild build-installer.proj /p:Configuration=Release /p:BuildSolution=False /p:CollectFiles=False /p:BuildMSI=True

MSI file is available in Setup.Aggregator\bin\$(Configuration) as TFSAggregator-0.2.2-alpha+local-$(Configuration).msi. Notice the zero version number to highlight that is has been produced locally.

Caveat: avoid modifying anything in this area unless you are fluent in MSBuild, WiX and Windows Installer technologies.