1

我创建了一个控制台应用程序,它将两个参数一个作为输入 .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
     }

但出于某种原因......它总是去我的 else 块。

请让我做错了什么

注意.... tfs 路径在网络上,我可以访问它。

谢谢,

4

1 回答 1

0

后一部分应该适用于指向现有文件的完整输入@"C:\Folder\CodeMetricsResult.xml"
即使对于网络中的文件也有效@"\\netdrive\Folder\CodeMetricsResult.xml"

我尝试了使用 TFS-SDK 的代码段,它运行良好。一些提示:

  • http://myServer:8080/tfs/defaultcollection在 Team Explorer 中右键单击 TeamCollection 的根目录,选择“属性”并检查“Url”下的条目是否匹配,以确保正确无误。
  • 检查是否MyProjectName与您的 TeamProject 的确切名称和MyBuildDefinationName您的构建定义名称匹配。
  • 在“构建”下右键单击MyBuildDefinitionName并选择“编辑构建定义”。在“BuildDefaults”下导航并检查“此构建将输出文件复制到放置文件夹”。
  • Check that the last succeeded build of MyBuildDefinionNameis still persistent (= hasn't been deleted). In order to do this right-click it on TeamExplorer, select "ViewBuilds" and find it in the Build Explorer that pops up. Once you do find it, click "open drop folder" in the build summary, to ensure that TFS has kept it.
于 2012-07-17T11:16:12.803 回答