This is the first post on monitoring storage usage of on-premise TFS.
Often the databases behind TFS is a black boks, where storage just grows, so we will dig into the database behind to see where the bits and bytes goes.
Deprecation of SOAP API
The older SOAP API for work items and test, will be deprecated in TFS 2020, see Deprecate SOAP
Order of source repository
It is possible to have both TFVC and GIT in the same TFS project, and when you create a new project you set the default repository and the afterwards you can add the second one.
An important notice about this:
If you run XAML based builds, the build definitions can only use the default repository aka the one you selected when you created the TFS project.
So if you still use XAML, make sure you select the correct repository when you create the project
It is not possible to switch over. At least not officially yet….
UPDATE: MS support has a created a tool that can fix this
Number of build definitions
If you are stuck on upgrading to TFS 2018 due to the old deprecated XAML based builds, it can be a challenge to see how far you are from the goal of zero XAML builds.
Security updates for TFS on-premise
The TFS team has released a security update for TFS 2015 and 2017, that fixes issues with cross-site scripting.
Shelveset Cleanup
When you have a TFS collection that has been running for a long time, as I do, you end with a lot of shelvesets.
The drawbacks of this is of course, (minor) storage, but it also affects upgrade time.
But instead of manually delete all the old obsoleted stuff manually, Powershell rescues us.
Powershell connection to VSTS
The previous sample scripts on this blog has been about how to use Powershell through the REST API on a on-premise TFS. I’ve got some question about how to connect to Visualstudio Online (VSTS).
All the samples can be modified to connect to VSTS.
Get XAML build info
Just a small followup on Getting latest build in PS as the link is related to vNext build.
But what about the old XAML build, if you still have this?
TFS 2018 released
Yesterday at Connect(), the latest version of TFS was released.
Some of the new things to mention are:
Build-in Wiki for your teams to create a single entry site for help and guides.
Git Forks, so you can have forks on your main branch
Large scale of Git support, what Microsoft calls GVFS, for large scale Git repositories.
TFS 2018 will no longer support XAML based builds and lab management (MTLM lab part).
Full release notes click here TFS 2018 rel notes
Download link for ISO TFS 2018 ISO
More info about the release will come… Stay tuned
Can you point me in the direction of the assembly?
In VS 2017 (15.4.2) When opening unittest files form previous version of VS, you can end up getting an error where it is unable to find the assembly in its correct version:
Could not load file or assembly ‘Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
It seems that MS has made an mistake in their redirection of the assemblies.
It is possible to redirect assembly calls to previous version to use the latest version.
This can be done on app or machine level.
To learn more on this general topic see this link: Redirecting Assembly Versions
So to fix the error in VS 2017. Go to C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ (default location)
and find the file devenv.exe.config
Change from:
<dependentAssembly> <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="11.0.0.0-11.1.0.0" newVersion="15.0.0.0"/> </dependentAssembly>
To
<dependentAssembly> <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="11.0.0.0-14.1.0.0" newVersion="15.0.0.0"/> </dependentAssembly>