我的TFS Build项目遇到了问题。我正在关注here中的示例,直到在VS中设置项目。
我有一个仅用于自定义活动的项目和一个仅用于模板的单独项目。我遇到的问题是Templates项目只能包含一个xaml文件。如果我复制并将其粘贴到同一个项目中,它就不会构建。我收到以下错误:
错误102在“Resources”参数中多次指定了项目“obj \ Debug \ TfsBuild_Process_BeforeInitializeComponentHelper.txt”。 “Resources”参数不支持重复项目。
但如果我删除它,它会建立得很好。一切正常,这意味着如果我对构建进行排队,它就会构建。
我也尝试了here上建议的解决方案,但它似乎无法解决我的问题。
解决方案:
在解决方案资源管理器中重命名表单名称。
更改.cs和Designer.cs文件中的类名。
更改构造函数和析构函数名称(与类名称相同)
更改名称空间名称(如果需要)。
Here是下载项目的链接。
我似乎无法弄明白为什么。非常感谢任何帮助!
答案 0 :(得分:8)
我不知道你是否还有这个问题,但我今天也遇到了这个问题。我找到了一个决议(如果你仍然面临问题)可以帮助你或其他人。
复制Build Process模板时,它会自动将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"......
我没有找到一种方法来改变这一点,使用界面,查看代码&amp;查找和替换作品。希望它有所帮助。
答案 1 :(得分:5)
我使用了以下方法并且效果很好。所有需要替换的是原始xaml第一行的两个位置的TfsBuild。
从链接:
1在“源代码管理”中右键单击“DefaultTemplate.xaml”,然后选择“查看方式...”以在记事本中打开它(您也可以右键单击VS中的模板并选择“查看代码”)。
2然后在第一行更改:
**x:Class="TfsBuild.Process"**
至**x:Class="YourProcessTemplateName.Process"**
**xmlns:this="clr-namespace:TfsBuild"**
至**xmlns:this="clr-namespace:YourProcessTemplateName"**
答案 2 :(得分:0)
我遇到了这个问题并希望添加我找到的解决方案。如果检查XAML文件的属性,当您将它们链接到项目时,会为它们分配一个XamlAppDef的BuildAction。将此更改为“内容”将解决错误。
要查找需要编辑的属性屏幕,只需在解决方案资源管理器中突出显示XAML文件,然后按F4或右键单击文件,然后从上下文菜单中选择“属性”。
希望这有帮助。