2

在对我的构建模板进行大量编辑之后(我在 2012 年重新创建它们以避免任何问题.. 但后来我想我马虎了,只是从旧工作流程中复制/粘贴了整个块,我想这一定完全破坏了我的版本控制) 我现在遇到了一个基于我编辑的构建模板的构建定义的问题。(所有其他的似乎都工作正常..所以我想一个在所有编辑过程中都有问题。(我主要是在构建模板中添加和删除 Version=11.0.0.0 到程序集))

确切的错误是:

要构建的参数项:无法将 Microsoft.TeamFoundation.Build.Workflow.Activities.BuildSettings 类型的值“Microsoft.TeamFoundation.Build.Workflow.Activities.BuildSettings”转换为 Microsoft.TeamFoundation.Build.Workflow.Activities.Buildsettings 类型,重置为默认。

它在编辑构建定义并希望选择要构建的项目/解决方案和配置时显示。实际上,现在我无法再保存(没有错误),并且该值再次被删除。

(我正在针对 TFS 2012 使用 VS 2012(仍然安装 VS 2010)。)

怎么修?

4

2 回答 2

4

打开您的 XAML 并查看根节点xmlns上的 's :Activity

这是我的一个剪辑版本:

<Activity mc:Ignorable="sads sap sap2010" <!--Removed-->
 xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 xmlns:mt="clr-namespace:Microsoft.TeamFoundation;assembly=Microsoft.TeamFoundation.Common"
 xmlns:mtbc="clr-namespace:Microsoft.TeamFoundation.Build.Client;assembly=Microsoft.TeamFoundation.Build.Client"
 xmlns:mtbw="clr-namespace:Microsoft.TeamFoundation.Build.Workflow;assembly=Microsoft.TeamFoundation.Build.Workflow"
 xmlns:mtbwa="clr-namespace:Microsoft.TeamFoundation.Build.Workflow.Activities;assembly=Microsoft.TeamFoundation.Build.Workflow"
 xmlns:mtbwt="clr-namespace:Microsoft.TeamFoundation.Build.Workflow.Tracking;assembly=Microsoft.TeamFoundation.Build.Workflow"
 xmlns:mttbb="clr-namespace:Microsoft.TeamFoundation.TestImpact.BuildIntegration.BuildActivities;assembly=Microsoft.TeamFoundation.TestImpact.BuildIntegration"
 xmlns:mtvc="clr-namespace:Microsoft.TeamFoundation.VersionControl.Client;assembly=Microsoft.TeamFoundation.VersionControl.Client"
 xmlns:mtvc1="clr-namespace:Microsoft.TeamFoundation.VersionControl.Common;assembly=Microsoft.TeamFoundation.VersionControl.Common"

查找特定于版本的引用(通常是“10.0”或“11.0”)并将它们删除,使它们看起来像我上面的那些。

此外,请检查您的项目引用并确保它们不是特定于版本的。

于 2013-04-23T13:05:30.260 回答
1

以下是如何更改 TFS 模板中的程序集:

  • 在源代码管理资源管理器中,浏览到 BuildprocessTemplates 并打开(双击或从右键单击菜单中选择“查看”)您的构建所基于的模板(给您上述错误的模板)
  • 您应该会看到工作流的可视化图表。底部是三个选项卡:变量、参数和导入。单击参数。
  • 选择 BuildSettings 参数
  • 找到属性框。争论的属性是:ArgumentType、Direction、IsRequired、Name 和 Value。
  • Microsoft.TeamFoundation.Build.Workflow.Activities.BuildSettings 应该是选定的类型,但问题是(典型)您无法判断选择了该程序集的哪个版本。单击下拉菜单。
  • 在列表底部选择“浏览类型...”

现在您可以看到所有可用的程序集及其版本。选择你想要的,最有可能升级到最新的。请务必仔细阅读所有各种争论,并确保它们的类型都设置为相同的版本以确保兼容性。

您现在保存文件时可能会遇到问题。一切可能看起来都很好。TFS 表示它知道文件已更改,签入似乎很顺利,但是当文件打开时,程序集仍然反映 v 10。如果您从文件系统中打开相同的文件,您可能会发现文件中的程序集确实是 v 11. 送什么?不知道。VS中的某种故障。

但这里有一个解决方法:

  1. 从您的开发机器上卸载 VS 2010 Team Foundation Server Power Tools
  2. 打开 VS 2012 并确保模板没有待处理的更改(撤消)并获取最新版本
  3. 签出以进行编辑(重要),但不要在 VS 中进行任何更改(它无论如何都不会打开,因为在上一步中卸载了 10 个程序集)
  4. 关闭 VS 2012(很重要,因为如果它是打开的,看起来你的改变没有被接受)
  5. 从文件系统打开模板(我使用记事本消除了来自 VS 的任何干扰)并使用“Version=11.0.0.0”在“Version=10.0.0.0”上执行查找/替换并保存文件
  6. 打开 VS 2012 现在你应该可以看到工作流设计器了
  7. 当然,签入文件
于 2014-04-17T19:52:59.060 回答