如何确定 TFS 签入期间使用的 Visual studio 版本

How to determine which Visual studio version used during TFS checkin

我正在使用 TFS 服务器 2015。我有不同类型的项目使用不同版本的 Visual studio:2012/2015/2017/2019。从 TFS 我如何确定在签入 TFS 期间使用哪个版本。 同时,我也想知道TFS Build使用的是哪个MS Build版本。

如果您转到诊断面板(需要管理员权限),您可以看到 TFS/Azure DevOps Server 接收的命令和传入的用户代理:

您可以在其中找到它

 https://server/_oi
 https://server/tfs/_oi

用户代理包含 TFS 客户端对象模型的版本,与人们进行 TFS 相关工作时的 Visual Studio 版本相匹配。

MSSCCI 提供程序的使用将显示与 Visual Studio 版本不同的对象模型版本。因为这些将记录启动的团队资源管理器的版本。

无法从服务器日志中检测到 MsBuild 版本,但 csproj 文件将指示 .NET Framework 版本和使用的 MsBuild 版本。应该可以直接从源代码管理中解析出这些信息。

ToolsVersion attribute 应该提供了一个很好的提示。

The ToolsVersion attribute is also used for project migration. For example, if you open a Visual Studio 2008 project in Visual Studio 2010, the project file is updated to include ToolsVersion="4.0". If you then try to open that project in Visual Studio 2008, it doesn't recognize the upgraded ToolsVersion and therefore builds the project as though the attribute was still set to 3.5.

Visual Studio 2010 and Visual Studio 2012 use a ToolsVersion of 4.0. Visual Studio 2013 uses a ToolsVersion of 12.0. Visual Studio 2015 uses ToolsVersion 14.0, and Visual Studio 2017 uses ToolsVersion 15.0.

第二个 VisualStudioVersion 也可能存在:

Sub-toolsets become active in the presence of the VisualStudioVersion build property. This property may take one of these values:

"10.0" specifies the .NET Framework 4 sub-toolset

"11.0" specifies the .NET Framework 4.5 sub-toolset

"12.0" specifies the .NET Framework 4.5.1 sub-toolset

Sub-toolsets 10.0 and 11.0 should be used with ToolsVersion 4.0. In later versions, the sub-toolset version and the ToolsVersion should match.