7

我的 TFS Build 项目有问题。就在 VS 中设置项目而言,我正在按照这里的示例进行操作。

我有一个仅用于自定义活动的项目和一个仅用于模板的单独项目。我遇到的问题是模板项目只能包含一个 xaml 文件。如果我将其复制并粘贴到同一个项目中,它将无法构建。我收到以下错误:

错误 102 在“Resources”参数中多次指定了“obj\Debug\TfsBuild_Process_BeforeInitializeComponentHelper.txt”项。“资源”参数不支持重复项。

但如果我删除它,它会构建得很好。一切正常,这意味着如果我排队构建它就会构建。

我也尝试过这里建议的解决方案,但似乎无法解决我的问题。

解决方案:

在解决方案资源管理器中重命名表单名称。

更改 .cs 和 Designer.cs 文件中的类名。

更改构造函数和析构函数名称(与类名相同)

更改名称空间名称(如果需要)。

是下载项目的链接。

我似乎无法弄清楚为什么。任何帮助是极大的赞赏!

4

3 回答 3

8

我不知道你是否还有这个问题,但我今天也有这个问题。我找到了一个解决方案(如果您仍然面临问题)可以帮助您或其他人。

当您复制构建过程模板时,它会自动将 x:Class 属性设置为TfsBuild.Process。当您有多个具有相同值的流程模板时,您将在构建项目时收到此错误。

<Activity mc:Ignorable="sads sap sap2010" x:Class="TfsBuild.Process" this:Process.BuildNumberFormat="$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)" this:Process.AgentSettings="[New Microsoft.TeamFoundation.Build.Workflow.Activities.AgentSettings() With {.MaxWaitTime = New System.TimeSpan(4, 0, 0), .MaxExecutionTime = New System.TimeSpan(0, 0, 0), .TagComparison = Microsoft.TeamFoundation.Build.Workflow.Activities.TagComparison.MatchExactly}]" this:Process.Verbosity="[Microsoft.TeamFoundation.Build.Workflow.BuildVerbosity.Normal]" this:Process.OutputFullHistory="True" this:Process.OutputBranchOrigin="True" this:Process.OnlyOutputChangedFiles="True" this:Process.StartChangeset="0"...... 

我通过将TfsBuild.Process替换为每个模板的另一个名称(例如TfsBuild.ProcessLabDefault)解决了这个问题。请注意,您还应该更改this:Process的所有实例,因为这两者是链接在一起的(例如this:ProcessLabDefault)。

<Activity mc:Ignorable="sads sap sap2010" x:Class="TfsBuild.MyProcess" this:MyProcess.BuildNumberFormat="$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)" this:MyProcess.AgentSettings="[New Microsoft.TeamFoundation.Build.Workflow.Activities.AgentSettings() With {.MaxWaitTime = New System.TimeSpan(4, 0, 0), .MaxExecutionTime = New System.TimeSpan(0, 0, 0), .TagComparison = Microsoft.TeamFoundation.Build.Workflow.Activities.TagComparison.MatchExactly}]" this:MyProcess.Verbosity="[Microsoft.TeamFoundation.Build.Workflow.BuildVerbosity.Normal]" this:MyProcess.OutputFullHistory="True" this:MyProcess.OutputBranchOrigin="True" this:MyProcess.OnlyOutputChangedFiles="True" this:MyProcess.StartChangeset="0"...... 

我没有找到通过使用界面、查看代码和查找和替换作品来改变这一点的方法。希望能帮助到你。

于 2013-07-08T10:10:11.730 回答
5

我使用了以下方法,效果很好。需要替换的只是原始 xaml 第一行两个位置的 TfsBuild。

http://social.msdn.microsoft.com/Forums/vstudio/en-US/d3fb6b89-b711-4a02-a10a-a88a0cb4f714/unable-to-add-more-than-one-templatexaml-into-activity-library-工作流项目?论坛=tfsprocess

从链接:

1 在源代码管理中右键单击您的 DefaultTemplate.xaml 副本并选择查看方式...以在记事本中打开它(您也可以在 VS 中右键单击模板并选择“查看代码”)。

2 然后在第一行更改:

  1. **x:Class="TfsBuild.Process"****x:Class="YourProcessTemplateName.Process"**
  2. **xmlns:this="clr-namespace:TfsBuild"****xmlns:this="clr-namespace:YourProcessTemplateName"**
于 2014-02-18T21:40:16.873 回答
0

我遇到了这个问题,想添加我找到的解决方案。如果您检查 XAML 文件的属性,当您将它们链接到您的项目时,它们会被分配 XamlAppDef 的 BuildAction。将此更改为“内容”将解决该错误。

要查找需要编辑的属性屏幕,只需在解决方案资源管理器中突出显示 XAML 文件,然后按 F4 或右键单击该文件,然后从上下文菜单中选择“属性”。

希望这可以帮助。

于 2013-08-19T15:31:35.143 回答