【问题标题】:TFS 2013 Build: Cannot leave solution/project files field blankTFS 2013 Build:不能将解决方案/项目文件字段留空
【发布时间】:2015-10-06 11:49:50
【问题描述】:

我正在使用 TFS 2013 (TfvcTemplate.12.xaml) 附带的构建过程模板。我想创建一个运行一堆 PowerShell 脚本的新构建定义;但是,我没有要构建的任何 .NET。 TF build 似乎不喜欢那样。将解决方案/项目文件字段留空时,我在下面收到此错误。有没有办法解决这个问题?

TF215097:为构建定义 \MyProjectRoot\MyBuildDefinition 初始化构建时出错:

异常信息:

流程参数 ProjectsToBuild 是必需的,但未设置任何值。必须在定义或构建排队时设置一个值(类别:#200 构建,显示名称:1. 项目)。 (类型 ArgumentException)

异常堆栈跟踪:

at Microsoft.TeamFoundation.Build.Hosting.BuildWorkflowInstance.ValidateParameters(BuildWorkflowDefinition definition, IDictionary`2 passedInParameterValues) at Microsoft.TeamFoundation.Build.Hosting.BuildWorkflowInstance.Initialize(BuildWorkflowDefinition definition, IDictionary`2 dataContext) 
at Microsoft.TeamFoundation.Build.Hosting.BuildWorkflowManager.TryStartWorkflow(WorkflowRequest request, WorkflowManagerActivity activity, BuildWorkflowInstance& workflowInstance, Exception& error, Boolean& syncLockTaken)

【问题讨论】:

  • 运行一堆 PowerShell 脚本实际上是想做什么?
  • 对已经构建好的第三方文件进行打包;因此,我不需要运行 MSBuild 的原因。

标签: powershell tfs build tfsbuild


【解决方案1】:

您需要创建自己的流程模板(您可能会从标准模板中窃取很多内容),并且您需要删除 Run MsBuild for Project 活动以及专门为该活动(这将是相当多的默认模板)。

这应该允许您直接跳转到 powershell 部分。

【讨论】:

  • 谢谢@jessehouwing。尽管您的解决方案听起来不错,但我最终还是采用了 Dylan Smith 建议的解决方案。
【解决方案2】:

在 TFS 2015(或 Visual Studio Online)中,新的 TFS 构建系统不再有此限制。

在 TFS 2013 中,我经常做的事情(为了避免搞乱工作流程)只是提供一个什么都不做的虚拟 MSBuild .proj 文件。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="Build">
  <Target Name="Build">
    <Message Text="This MSBuild is a placeholder and does nothing" /> 
  </Target>
</Project>

【讨论】:

  • 谢谢,这正是我最终要做的:使用一个什么都不做的虚拟 MSBuild .proj 文件,它可以工作。
【解决方案3】:

Dylan 的解决方案的替代方案,但与我非常相似的做法是在 Visual Studio 中创建一个空的解决方案文件 (.sln) 并在构建定义/工作流程中提及。

【讨论】:

    猜你喜欢
    • 2014-04-26
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 2015-06-08
    • 2011-05-31
    相关资源
    最近更新 更多