有一个非常简单的解决方案,尽管它需要您从 TFS 下载文件。在任何情况下,您都需要一个用户帐户才能找到 DLL 文件。下面是一些代码片段:
要获取 DLL 文件列表:
TfsTeamProjectCollection tfcollection = new TfsTeamProjectCollection(new Uri("URL"), new System.Net.NetworkCredential("USERNAME", "PASSWORD"));
VersionControlServer server = tfcollection.GetService<VersionControlServer>();
//Obtain all DLLs. You can narrow this down to the specific one's you want
ItemSet items = server.GetItems("$/*.dll", RecursionType.Full);
为了下载文件,我稍微简化了一些事情以使其更容易。要循环浏览文件,您可以:
foreach (Item item in items.Items)
现在您要下载文件。这很慢,但会阻止算法重新创建 TFS 文件夹结构:
string[] split = item.ServerItem.ToString().Split('/');
//This may not work if you have files in the root
item.DownloadFile(split[split.Length - 1]);
这将下载您的 DLL 文件,以便您可以从中提取数据。不幸的是,您不能直接通过 TFS 执行此操作,因此我们需要一份副本。现在,您可以提取 DLL 版本:
FileVersionInfo.GetVersionInfo(localFileLocation).FileVersion
您呈现数据的方式显然取决于您。为简单起见,我只是将带有 item.ServerItem 的版本号转储到文本文件中。
如果有人正在寻找类似的东西,希望这会有所帮助!