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).
Building requires a number of TFS assemblies that cannot be redistributed. You can find the complete list in these files
References/2013/PLACEHOLDER.txt
References/2015/PLACEHOLDER.txt
References/2015.1/PLACEHOLDER.txt
References/2015.2/PLACEHOLDER.txt
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.
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
.
Assemblies produced locally always have the 2.2.0.0
version, at least until we further enhance the build scripts.
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.