Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从tfs2015中的不同项目访问$(Build.BuildNumber)_Build_Msbuild_Tfsbuild_Tfs 2015_Release Management - Fatal编程技术网

如何从tfs2015中的不同项目访问$(Build.BuildNumber)

如何从tfs2015中的不同项目访问$(Build.BuildNumber),build,msbuild,tfsbuild,tfs-2015,release-management,Build,Msbuild,Tfsbuild,Tfs 2015,Release Management,有两个项目,例如Project1和Project2。 现在在project2中,我们需要创建一个发布定义,其中我们需要复制project1的构建定义的构建输出 问题是,我们不能在Project2发行版中提供与Project1构建定义相同的工件 如果我们可以从Project2访问project1的$(Build.BuildNumber)变量,prolem将被解决 请建议 谢谢。现在TFS上没有链接其他团队项目生成工件的功能,但是作为一种解决方法,您可以在Project2的发布定义中添加一个Wind

有两个项目,例如Project1和Project2。 现在在project2中,我们需要创建一个发布定义,其中我们需要复制project1的构建定义的构建输出

问题是,我们不能在Project2发行版中提供与Project1构建定义相同的工件

如果我们可以从Project2访问project1的$(Build.BuildNumber)变量,prolem将被解决

请建议


谢谢。

现在TFS上没有链接其他团队项目生成工件的功能,但是作为一种解决方法,您可以在Project2的发布定义中添加一个Windows机器文件复制任务,以从Project1复制工件。这供您参考。

您可以通过REST API访问版本号,简单步骤如下:

  • 使用以下代码在项目中创建新的powershell脚本文件:
  • 代码:

  • 检查源代码管理
  • 队列生成和发布工件
  • 编辑您的发布定义
  • 添加这些变量
  • 将PowerShell任务添加到发布定义中

    脚本文件名:[工件中的powershell脚本文件,例如$(System.DefaultWorkingDirectory)/PowerShellVnext/TFS2015U2Solution/PowerShellModuleProject1/RestTest.ps1]

    参数:-teamProject$(teamProject)-collectionURL$(System.TeamFoundationCollectionUri)-buildId$(buildId)-userName$(userName)-passwor$(密码)


  • 之后,buildnumber值存储在另一个buildnumber变量中。

    简单,使用一点反射魔法

    var version = typeof(Program).Assembly
                  .GetCustomAttribute<AssemblyFileVersionAttribute>().Version;
    

    可以从同一生成定义生成两个项目。然后两者将共享相同的“环境”属性。感谢Andy MSFT…我们需要复制的文件夹是作为生成输出的一部分创建的,其名称包含生成编号。由于无法访问来自其他团队项目的内部版本号,因此我们也不能使用Windows计算机文件副本。
    var version = typeof(Program).Assembly
                  .GetCustomAttribute<AssemblyFileVersionAttribute>().Version;
    
    var date = new FileInfo(typeof(Program).Assembly.Location).CreationTime;