TFS '$(BuildLocation)' 宏指向实验室环境模板上的错误路径

标签 tfs automated-tests workflow-foundation-4 tfsbuild buildconfiguration

我很难找到有关此的任何信息。我刚刚创建了一个 Build-Deploy-Test为我们的一个主要项目构建定义,但是当工作流运行时,它会报告“$(BuildLocation)”宏的错误值,这会破坏从部署阶段开始的所有内容(测试也会尝试在这个错误的路径上运行)。

我知道是什么导致了这个问题,但我不知道如何解决它。我们将实验室一重定向到的构建定义被配置为构建我们解决方案的“发布”配置。放置文件夹是“\outputServer\drops”。我希望 BuildLocation 宏随后返回 "\\outputServer\drops\<BuildName>\<BuildNameFormat>" , 但宏返回 "\\outputServer\drops\<BuildName>\<BuildNameFormat>\Release"相反。

我最初认为这是 LabDefaultTemplate.11.xaml 之间的不兼容问题模板(这是我正在尝试使用的模板)和旧的 DefaultTemplate.xaml ,我基于我们的自定义模板。我尝试更新我们的自定义模板以将新的默认值 ( DefaultTemplate.11.1.xaml ) 作为基础,但在转换模板后问题仍然存在。

即使在查看了 DefaultTemplate.11.1 上的代码之后,我仍然看不到它完全按配置名称过滤输出。那里唯一的处理是基于解决方案或项目名称,默认情况下禁用(由构建定义配置上高级类别下的“解决方案特定构建输出”选项控制)。

为什么假设放置文件夹以“Release”结尾,而放置的输出根本没有放在这个文件夹中?我设法通过在路径中附加“..”使部署脚本运行良好,就像这样 $(BuildLocation)\..\myScript但是当工作流尝试运行自动化测试时,它似乎在使用相同的宏,显然找不到测试 dll。

可以通过不在定义选项中的“要构建的项目”元素上指定构建配置来解决这个问题(因此让它选择默认的),但指定配置是我们有意识的决定,因为在Release模式下构建项目时,文件存在差异,一些配置转换不同。

我目前正在使用 VS2012 更新 3/TFS 2012 更新 2 这对任何人都有帮助。

更新:

好的,我在模板本身内部找到了执行此操作的位置。实验室工作流程非常简单这一事实对此有所帮助。

Compute build location needed里面'if 语句',似乎有一个作业在做这种奇怪的串联。这是代码:

If(LabWorkflowParameters.BuildDetails.Configuration Is Nothing, BuildLocation, If(LabWorkflowParameters.BuildDetails.Configuration.IsEmpty Or (SelectedBuildDetail.Information.GetNodesByType(Microsoft.TeamFoundation.Build.Common.InformationTypes.ConfigurationSummary, True)).Count = 1, BuildLocation, If(LabWorkflowParameters.BuildDetails.Configuration.IsPlatformEmptyOrAnyCpu, BuildLocation + "\" + LabWorkflowParameters.BuildDetails.Configuration.Configuration, BuildLocation + "\" + LabWorkflowParameters.BuildDetails.Configuration.Platform + "\" + LabWorkflowParameters.BuildDetails.Configuration.Configuration)))

我什至不确定这是什么意思。这种行为对我来说似乎是一个错误,因为构建模板本身(不是实验室模板)不会进行这种连接。 LabTemplate 怎么能承担这种事情?

最佳答案

只需从 LabDefaultTemplate 构建过程模板中删除事件似乎就可以了。

我不确定那个 Assign 事件的意义或目的是什么,但没有它似乎对我们来说工作得很好。

Remove This Activtiy

关于TFS '$(BuildLocation)' 宏指向实验室环境模板上的错误路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17954206/

相关文章:

TFS 门户网站 : Possible to link/URI directly to line number in file?

git - 是否可以使用 Bitbucket 在 TFS 上进行持续集成?

xaml - 将 Activity 序列化为 xaml

wcf - 为每个工作流程定义不同的默认 ServiceHostFactory

TFS 为强名称 CSP 构建错误证书

azure - 发布符号路径构建步骤期间出现 401 未经授权

gradle - 如何让 Gradle 按一定顺序运行任务?

python - 在 PyCharm 中运行 Django 应用测试

javascript - 如何通过 Webdriver 自动化测试在 FireFox/Edge 中填写 redux-form 输入

windows - Windows 从 sleep 中返回后的 InstanceOwnerException