Whoops. Sorry folks! I had just uploaded the .MSI and related setup files to the CodePlex site source control. I forgot to created a release with them which made it a pain to download. I should probably zip up the files so it’s one download but the MSI and setup.exe are now sorta easily available.
When using the TFS build facilities with SharePoint components when MSbuild execute calls to devenv.exe to build native deployment projects you may experience no issues, however this excludes a common situation where SharePoint deployment projects are pushed to a different team build drop location. However, when using build deletion options such as keep the 2 latest builds you may find that these enforcements don’t apply to the custom drop locations.
This leads to an issue of maintaining harmony in source control since the builds are not synchronized. While this is not ideal, using the inbuilt TFS retention policies are limited since they work against known parameters such as the build label, build global list, and build metadata. This implies that the policies are not enforceable as they lay outside the scope of the TFS retention faculties.
However, the issue is solvable if you use TFS event modeling to hook into the Build Completion event, and then have the subscription point to your own web / WCF service. It’s about the only approach that I have seen be successful.
When using TFS as a continuous integration platform with TFS, you may find that time to time with larger pieces that source control queries will start to timeout when automated builds are triggered. Thus, when a build is triggered and the sources are attempted to be pulled down to the build server working directory, you will get an error similar to the following:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets: error :
To get around this problem you can change the timeout settings in the registry for the HKLM in the following location:
@DefaultTimeout: DWORD –> Sets the timeout, in milliseconds, for an individual request (the default is 5 minutes)
This should be done carefully, as actual issues might not bubble up as they should in regards to connectivity.