Last Update: 2021 - 07 - 08
DevOps Server – Diff Command – “Cannot execute the configured tool.”-error
by Philipp Stiefel, originally published 2021-03-01
last revision on 2021-01-27
Text is based on an “Ivercy - Seamless source code control integration for Microsoft Access” FAQ text and revised and republished here for a wider audience with kind permission of the Ivercy team.
If you host your source code control repository on a Microsoft DevOps Server (aka. Team Foundation Server) and you connect to the server a using the TFS-MSSCCI-Provider with a 3rd-party-tool like Ivercy, MATLAB or PowerBuilder and you use the command to show the differences between your local copy of an object/file and the same file in the repository on the server, you might encounter the error message “Cannot execute the configured tool.” and there is no diff view displayed.
The same error happens when you try to compare two different version from the history of an object/file.
The cause for this problem is that with the default configuration Microsoft Visual Studio or Team Explorer must be running already, the TFS/DevOps connection configured, and the default TFS workspace should be the same workspace as the one used by the external tool (Ivercy, MATLAB, PowerBuilder etc.).
So, one simple but slightly inconvenient solution would be to always also start Visual Studio / Team Explorer when you start working in your main development environment, like Access/Ivercy, MATLAB, or PowerBuilder.
Note: There are other incarnations of the “Cannot execute the configured tool.”-error that cannot be fixed by this approach.
Manually Configure vsDiffMerge for Visual Studio and the MSSCCI-Provider
The other solution is to manually configure vsDiffMerge as diff tool in Visual Studio / Team Explorer. vssDiffMerge is the very same tool that Visual Studio uses internally.
If you are using a tool not related to the TFS-MSSCCI-Provider, you probably need to configure this in the Visual Studio version your tool is linked to. For any MSSCCI-Provider based tools, you must configure this in Visual Studio or Team Explorer 2013, because that is what the most recent version of the MSSCCI-Provider is based on.
To configure vsDiffMerge as diff tool, open Visual Studio / Team Explorer and go to the Tools – Options menu. Then navigate to the section “Source Control” – “Plug-In Selection”. In that section make sure that “Visual Studio Team Foundation Server“ is selected as Current source control plug-in (not the MSSCCI-Provider, even if you use it!).
Then navigate to “Source Control” – “Visual Studio Team Foundation Server“ and click on “Configure User Tools…”. In the dialog click “Add” and then enter the following to configure vsDiffMerge for use with Ivercy:
(These are the settings for MsAccess/Ivercy. Your file extension will differ in another development environment!)
If you have multiple versions of vsDiffMerge.exe on your computer, you may need to try out the path to each version. Some versions work, while others don’t. If none of those available work as intended, try to update Visual Studio with the most recent patches and retry.
Note: Unfortunately, Microsoft considers documentation for the vsDiffMerge command line “Lower Priority” and failed to this day to provide any. So many other sources will only list arguments %1 and %2. However, %6 and %7 are important to include the descriptive labels for the files in the header above the diff.
Without the labels you have to kind of guess which version is which:
With the labels vsDiffMerge will display the changesets (versions) of the two different incarnations of the object/file:
With these settings Visual Studio / Team Explorer should always start up without error and display the diff window right away even if it is not connected to the TFS/DevOps Server at all.
© 1999 - 2021 by Philipp Stiefel - Privacy Policiy