我需要从命令行或反射加载Visual Studio,以便打开基于文件的变更集,作为更改文件和文件之间的比较,就像提交更改之前一样。
如果有人知道该怎么做,请告诉我它是如何完成的。
答案 0 :(得分:0)
您可以使用tf.exe
中的C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
实用程序来实现此目的。此命令将显示文件的两个版本之间的差异:
c:\projects>tf difference /version:C3~C8 1254.cs
更多选项和详细信息 - https://msdn.microsoft.com/en-us/library/6fd7dc73%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396
答案 1 :(得分:0)
命令行
从命令行可以使用:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\TF" difference /version:XXXVERSIONFROMXXX~XXXVERSIONTOXXX XXXFILEPATHXXX
更换:
注意:TF.exe可能与此处指定的文件夹位于不同的文件夹中。
C#中的反思
对于更改c和更改集cs,其中c是cs.Changes的成员,您可以像这样使用反射:
string ServerItem = c.Item.ServerItem.Substring(c.Item.ServerItem.IndexOf('/') + 1, c.Item.ServerItem.Length - c.Item.ServerItem.IndexOf('/') - 1);
string Filename = ServerItem.Substring(ServerItem.LastIndexOf('/') + 1, ServerItem.Length - ServerItem.LastIndexOf('/') - 1);
string Filepath = ServerItem.Substring(0, ServerItem.LastIndexOf('/'));
string TFPath = "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\TF";
string TFParameters = "difference /version:" + (cs.ChangesetId - 1) + "~" + cs.ChangesetId + " " + TFSRootDirectory + (Filepath + "/" + Filename).Replace("/", "\\");
System.Diagnostics.Process.Start(TFPath, TFParameters);