2013-01-31 25 views
7

Tôi đang gặp sự cố với dự án TFS Build của mình. Tôi đang theo dõi ví dụ từ here về cách thiết lập dự án trong VS.Sự cố với nhiều mẫu xây dựng (tệp xaml) trong dự án

Tôi có một dự án chỉ dành cho các hoạt động tùy chỉnh và một dự án riêng biệt chỉ dành cho các mẫu. Vấn đề tôi có là dự án mẫu chỉ có thể chứa một tệp xaml. Nếu tôi sao chép và dán nó vào cùng một dự án mà nó sẽ không xây dựng. Tôi nhận được lỗi sau:

Lỗi 102 Mục "obj \ Debug \ TfsBuild_Process_BeforeInitializeComponentHelper.txt" đã được chỉ định nhiều lần trong tham số "Tài nguyên". Các mục trùng lặp không được hỗ trợ bởi tham số "Tài nguyên".

Nhưng nếu tôi xóa nó, nó sẽ xây dựng tốt. Mọi thứ hoạt động, nghĩa là nó sẽ xây dựng nếu tôi xếp hàng một bản dựng.

Tôi cũng đã thử giải pháp được đề xuất trên here, nhưng dường như không giải quyết được sự cố của tôi.

Solution:

Renaming the form name in the solution explorer.

Change the class name in the .cs and Designer.cs file.

Change the constructor and destructor name (which is same as class name)

Change the name space name (if needed).

Here là liên kết để tải xuống dự án.

Tôi dường như không hiểu tại sao. Bất kỳ trợ giúp nào cũng được đánh giá rất cao!

+0

Có cùng một vấn đề chính xác, bất kỳ may mắn với điều này? –

Trả lời

8

Tôi không biết liệu bạn vẫn gặp sự cố này nhưng hôm nay tôi cũng gặp sự cố. Tôi đã tìm thấy một giải pháp (nếu bạn vẫn gặp phải vấn đề) có thể giúp bạn hoặc những người khác.

Khi bạn sao chép mẫu Quy trình xây dựng, nó sẽ tự động nhận thuộc tính x: Class được đặt thành TfsBuild.Process. Khi bạn có nhiều mẫu quy trình có cùng giá trị thì bạn sẽ gặp lỗi này khi xây dựng dự án.

<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"...... 

tôi giải quyết vấn đề bằng cách thay thế TfsBuild.Process với một tên khác cho mỗi mẫu (ví dụ. TfsBuild.ProcessLabDefault). Xin lưu ý rằng bạn cũng nên thay đổi tất cả các trường hợp của điều này: Quy trình vì cả hai được liên kết với nhau (ví dụ: này: 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"...... 

Tôi không tìm cách thay đổi điều này bằng cách sử dụng giao diện, Xem mã & Tìm và thay thế công trình. Hy vọng nó giúp.

0

Tôi đã gặp phải sự cố này và muốn thêm giải pháp mà tôi đã tìm thấy. Nếu bạn kiểm tra các thuộc tính của các tệp XAML, khi bạn liên kết chúng với dự án của bạn, chúng được gán một BuildAction của XamlAppDef. Thay đổi điều này thành 'Nội dung' sẽ giải quyết lỗi.

Để tìm màn hình thuộc tính bạn cần chỉnh sửa, chỉ cần đánh dấu tệp XAML trong Solution Explorer và nhấn F4 hoặc Nhấp chuột phải vào tệp và chọn 'Thuộc tính' từ trình đơn ngữ cảnh.

Hy vọng điều này sẽ hữu ích.

+1

Nhưng thực hiện thao tác này sẽ xóa loại kiểm tra trên quy trình làm việc. Tôi sẽ không khuyên bạn nên điều này nếu một trong những muốn mẫu tùy chỉnh của họ được ổn định. – harlam357

5

Tôi đã sử dụng cách tiếp cận sau và nó hoạt động rất tốt. Tất cả những gì cần thay thế là TfsBuild ở hai vị trí trên dòng đầu tiên của xaml thô.

http://social.msdn.microsoft.com/Forums/vstudio/en-US/d3fb6b89-b711-4a02-a10a-a88a0cb4f714/unable-to-add-more-than-one-templatexaml-into-activity-library-workflow-project?forum=tfsprocess

Từ liên kết:

1 Kích chuột phải vào Sao chép lại DefaultTemplate.xaml trong Control Source và chọn View Với ... để mở nó trong Notepad (bạn cũng có thể nhấn phải chuột lên mẫu trong VS và chọn 'Xem mã').

2 Sau đó, trong sự thay đổi dòng đầu tiên:

  1. **x:Class="TfsBuild.Process"** để **x:Class="YourProcessTemplateName.Process"**
  2. **xmlns:this="clr-namespace:TfsBuild"** để **xmlns:this="clr-namespace:YourProcessTemplateName"**
+0

Điều này tốt hơn câu trả lời của IIMII (hiện ở trên) vì điều này chỉ yêu cầu hai thay đổi trong tệp. – DonBecker

+0

Chắc chắn tốt hơn. – mark

Các vấn đề liên quan