2013-01-31 18 views
7

में एकाधिक बिल्ड टेम्पलेट (xaml फ़ाइलें) के साथ समस्याएं मुझे अपने टीएफएस बिल्ड प्रोजेक्ट में परेशानी हो रही है। मैं वीएस में परियोजना की स्थापना के रूप में here से उदाहरण का पालन कर रहा हूं।प्रोजेक्ट

मेरे पास सिर्फ कस्टम गतिविधियों और केवल टेम्पलेट्स के लिए एक अलग परियोजना के लिए एक परियोजना है। मेरे पास यह मुद्दा है कि टेम्पलेट प्रोजेक्ट में केवल एक xaml फ़ाइल हो सकती है। अगर मैं उसी प्रोजेक्ट में कॉपी और पेस्ट करता हूं तो यह निर्माण नहीं करेगा। मुझे निम्न त्रुटि मिलती है:

त्रुटि 102 आइटम "obj \ Debug \ TfsBuild_Process_BeforeInitializeComponentHelper.txt" को "संसाधन" पैरामीटर में एक से अधिक बार निर्दिष्ट किया गया था। डुप्लिकेट आइटम "संसाधन" पैरामीटर द्वारा समर्थित नहीं हैं।

लेकिन अगर मैं इसे हटा देता हूं, तो यह ठीक काम करेगा। सबकुछ काम करता है, जिसका मतलब है कि अगर मैं एक बिल्ड कतार बनाउंगा तो इसका निर्माण होगा।

मैंने here पर सुझाए गए समाधान का भी प्रयास किया है, लेकिन ऐसा लगता है कि यह मेरी समस्या का समाधान नहीं करता है।

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 प्रोजेक्ट डाउनलोड करने का लिंक है।

मुझे लगता है कि क्यों नहीं लग रहा है। कोई भी मदद बहुत ही सराहनीय होगी!

+0

को ठीक उसी मुद्दा है, इस के साथ किसी भी नसीब हो रही है? –

उत्तर

8

मुझे नहीं पता कि आपको अभी भी यह समस्या है या नहीं, लेकिन मुझे आज भी समस्या थी। मुझे एक संकल्प मिला कि (यदि आपको अभी भी समस्या का सामना करना पड़ रहा है) तो आप या दूसरों की मदद कर सकते हैं।

जब आप बिल्ड प्रक्रिया टेम्पलेट की प्रतिलिपि बनाते हैं तो यह स्वचालित रूप से एक्स: क्लास प्रॉपर्टी को पर सेट किया जाता है 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.ProcessLabDefault) के लिए TfsBuild.Process की जगह एक और नाम के साथ द्वारा समस्या हल हो। कृपया ध्यान दें कि आपको के सभी उदाहरणों को भी बदलना चाहिए: प्रक्रिया क्योंकि दोनों एक साथ जुड़े हुए हैं (उदा। यह: 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"...... 

मैं इंटरफ़ेस का उपयोग करके इस को बदलने के तरीके नहीं मिला, कोड देखें का पता लगाएं और काम करता है की जगह &। आशा करता हूँ की ये काम करेगा।

0

मैं इस समस्या में भाग गया और मुझे जो समाधान मिला, उसे जोड़ना चाहता था। यदि आप XAML फ़ाइलों के गुणों की जांच करते हैं, तो जब आप उन्हें अपने प्रोजेक्ट से लिंक करते हैं तो उन्हें XamlAppDef का BuildAction असाइन किया जाता है। इसे 'सामग्री' में बदलना त्रुटि को हल करेगा।

गुण स्क्रीन ढूंढने के लिए आपको केवल समाधान एक्सप्लोरर में XAML फ़ाइल को हाइलाइट करने की आवश्यकता है और या तो F4 दबाएं या फ़ाइल पर राइट-क्लिक करें और संदर्भ मेनू से 'गुण' चुनें।

उम्मीद है कि इससे मदद मिलती है।

+1

लेकिन यह कार्यप्रवाह पर प्रकार की जांच को हटा देता है। अगर कोई अपने कस्टम टेम्पलेट्स को स्थिर रखना चाहता है तो मैं इसकी अनुशंसा नहीं करता। – harlam357

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-workflow-project?forum=tfsprocess

लिंक से

:

1 राइट-क्लिक करें स्रोत नियंत्रण में DefaultTemplate.xaml का आपके प्रति और साथ दृश्य का चयन करें ... नोटपैड में खोलने के लिए (आप भी में टेम्पलेट राइट क्लिक कर सकते वीएस और 'कोड देखें' का चयन करें)।

2 तब पहली पंक्ति परिवर्तन में:

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

यह आईआईएमआईआई के उत्तर (वर्तमान में शीर्ष) से ​​बेहतर है क्योंकि इसमें फ़ाइल में केवल दो बदलाव की आवश्यकता है। – DonBecker

+0

निश्चित रूप से बेहतर है। – mark

संबंधित मुद्दे