我创建了一个控制台应用程序,它将两个参数作为输入.xml文件并输出为.htm文件
下面是访问tfs的代码
TfsTeamProjectCollection teamProjectCollection =
TfsTeamProjectCollectionFactory.GetTeamProjectCollection
(new Uri("http://myServer:8080/tfs/defaultcollection"));
var buildService = (IBuildServer)teamProjectCollection.GetService(
typeof(IBuildServer));
IBuildDefinition myBuildDefination = buildService.GetBuildDefinition(
"MyProjectName", "MyBuildDefinationName");
Uri lastKnownGoodBuild = myBuildDefination.LastGoodBuildUri;
IBuildDetail myBuildDetail = buildService.GetBuild(lastKnownGoodBuild);
string dropLocation = myBuildDetail.DropLocation;
但上面似乎并不适合我...所以我想手动传递路径。 正如您在下面的代码片段中看到的那样
// i have just added blackslash at the start and my problem solved
string xmlfile = "\\\\myTfsPath\\CodeMetricsResult.xml";
if (File.Exists(xmlfile))
{
//do something
}
但由于某种原因......它总是会转到我的其他地方。
请告诉我我做错了什么
注意...... tfs路径在网络上,我可以访问它。
感谢,
答案 0 :(得分:0)
后一部分应该适用于指向现有文件的完整输入@"C:\Folder\CodeMetricsResult.xml"
即使对于您网络中的文件也是有效@"\\netdrive\Folder\CodeMetricsResult.xml"
我试过了您的代码片段使用TFS-SDK,它工作正常。一些提示:
http://myServer:8080/tfs/defaultcollection
正确无误,选择“属性”并检查“网址”下的条目是否匹配。MyProjectName
是否与您的TeamProject的确切名称匹配,并MyBuildDefinationName
您的构建定义名称。MyBuildDefinitionName
,然后选择“编辑构建定义”。在“BuildDefaults”下导航并检查“此版本将输出文件复制到放置文件夹”。MyBuildDefinionName
的上一次成功构建是否仍然存在(=尚未删除)。为了做到这一点,在TeamExplorer上右键单击它,选择“ViewBuilds”并在弹出的Build Explorer中找到它。找到后,单击构建摘要中的“打开删除文件夹”,以确保TFS保留它。