TFS Build 2015-在每个构建中使用全局引用的文件

TFS Build 2015-在每个构建中使用全局引用的文件,build,msbuild,tfs-2015,build-system,tfvc,Build,Msbuild,Tfs 2015,Build System,Tfvc,因此,我们正在将XAML构建迁移到基于TFS的vNext(2015)构建的过程中,并且我们正在尝试“尽可能干净地做事情”,因为我们在XAML构建上有很多可以避免的定制,并且实际上在这一过程中给我们带来了问题 我们面临的一个主要问题是路径和“全局文件”。让我解释一下: 由于商品原因,我们在一个地方保存了一些文件,该集合中的每个SLN文件都引用了这些文件。这些文件包括代码分析规则集、签名文件(SNK)等。因此,更改只在一个地方进行,并且会影响每个构建 好的,在XAML构建中,我们有一个使用CI运行的

因此,我们正在将XAML构建迁移到基于TFS的vNext(2015)构建的过程中,并且我们正在尝试“尽可能干净地做事情”,因为我们在XAML构建上有很多可以避免的定制,并且实际上在这一过程中给我们带来了问题

我们面临的一个主要问题是路径和“全局文件”。让我解释一下:

由于商品原因,我们在一个地方保存了一些文件,该集合中的每个SLN文件都引用了这些文件。这些文件包括代码分析规则集、签名文件(SNK)等。因此,更改只在一个地方进行,并且会影响每个构建

好的,在XAML构建中,我们有一个使用CI运行的构建,该CI下载(获取)这些文件,并且由于我们对TFS和机器使用了相同的路径(路径的开头使用了一个环境变量),因此在开发人员和构建机器上的路径是相同的。但是,这会在构建和工作区问题之间创建依赖关系

我这里的问题是,是否有一个我缺少的配置,允许引用除构建分支之外的其他分支中的文件?因为我试图让构建机器尽可能“一次性”,所以它使用一个现成的代理配置运行:没有自定义路径,没有硬接线

例如,我已经尝试过直接使用源代码管理路径引用这些文件。我看到的唯一选项是创建PowerShell/CMD脚本,将这些文件下载到与SLN相同的文件夹中,或者保持“原样”,并使用相对路径将“构建”构建步骤置于实际构建步骤之前,以便将文件下载到服务器

难道没有一种“优雅”的方式来做到这一点吗?还是我们的方法一开始就错了

您可以添加一个步骤来复制生成所需的文件:


您是否尝试过为这些文件设置显式映射?e、 g.
$/Project/common/ruleset.ruleset
=>
$(SourceDir)\common\ruleset.ruleset
将它们粘在一个NuGet中也会起作用。或者在构建定义中设置一个变量,它将在运行时作为环境变量存储在buil代理上。