2012-02-14 13 views
8

मैंने सीआरएम 2011 डेवलपर टूलकिट का उपयोग कर विजुअल स्टूडियो 2010 में एक कस्टम वर्कफ़्लो लागू किया। यह सिस्टम जेनरेट नेमस्पेस के साथ ठीक काम कर रहा था। लेकिन, जब मैंने अपनी परियोजना के नामस्थान को बदल दिया, तो यह त्रुटि को फेंक रहा है "प्लगइन और/या वर्कफ़्लोज़ पंजीकृत करने में त्रुटि। प्लग-इन असेंबली में आवश्यक प्रकार या असेंबली सामग्री को अपडेट नहीं किया जा सकता है।" इसे तैनात करते समय। और मैंने .crmregister फ़ाइल, प्रोजेक्ट गुणों और स्रोत कोड में नामस्थान बदल दिया है। फिर यहाँ क्या समस्या है?प्लगइन और/या वर्कफ़्लो पंजीकृत करने में त्रुटि। प्लग-इन असेंबली में आवश्यक प्रकार या असेंबली सामग्री को अपडेट नहीं किया जा सकता है

उत्तर

11

यदि आप सीआरएम विकास टूलकिंट और पैकेज के माध्यम से अपने custome वर्कफ़्लो को तैनात कर रहे हैं और उसके बाद यदि आपने किसी भी वर्ग का नाम या नामस्थान बदल दिया है, तो आपको VisualFile.crmregister फ़ाइल को मैन्युअल रूप से बदलना होगा क्योंकि विजुअल स्टूडियो आपके लिए ऐसा नहीं करता है। इसलिए यदि आप अपने वर्ग के नाम एक से बी करने के लिए एन से अपने नाम स्थान एम को बदल और फिर RegisterFile.crmregister फ़ाइल में नीचे एक्सएमएल से 'TypeName' निम्नलिखित के रूप में होना चाहिए:

<?xml version="1.0" encoding="utf-8"?> 
<Register xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/crm/2011/tools/pluginregistration"> 
    <Solutions> 
    <Solution Assembly="PackageECRProcesses.CleanRegistration.dll" Id="ab72673b-c0a8-e111-af82-080027dd322f" IsolationMode="None" SourceType="Database"> 
     <WorkflowTypes> 
     <WorkflowType FriendlyName="any" Name="any" Description="any." WorkflowActivityGroupName="account" Id="f0e3f436-c1a8-e111-af82-080027dd322f" TypeName="M.B" /> 
     </WorkflowTypes> 
    </Solution> 
    </Solutions> 
    <XamlWorkflows /> 
</Register> 
1

असेंबली संस्करण बदलने की कोशिश करें।

+1

समान त्रुटि प्राप्त करना .. –

+0

मुझे यह वही त्रुटि थी। जब मैंने असेंबली संस्करण को एक तैनात के साथ ठीक से मिलान करने के लिए बदल दिया, तो आखिर में काम किया। –

1

क्या आप किसी भी अन्य असेंबली (जैसे Microsoft.Xrm.Sdk) का संदर्भ दे रहे हैं? यदि ऐसा है, तो यदि आप डेटाबेस में तैनात हैं तो उन्हें ILMerge जैसे टूल का उपयोग करके विलय करने की आवश्यकता है। यदि आप डिस्क पर तैनात हैं तो उन्हें असेंबली फ़ोल्डर में मौजूद होना चाहिए या जीएसी में स्थापित होना चाहिए।

+0

हां। मैं Microsoft.Xrm.Sdk, Microsoft.Xrm.Sdk.Query और Microsoft.Xrm.Sdk.Workflow का उपयोग कर रहा हूं। और मुझे क्या विलय करने की ज़रूरत है ..? क्या आप मुझे विलय करने का एक वाक्यविन्यास दे सकते हैं ..? मुझे ILMerge के बारे में पता नहीं है। –

+0

इसे कवर करना चाहिए। http://blogs.msdn.com/b/crm/archive/2010/11/09/how-to-reference-assemblies-from-plug-ins.aspx –

0

प्लगइन को अनधिकृत करें, फिर इसे फिर से पंजीकृत करें।

+0

डेवलपर टूलकिट में केवल यह त्रुटि प्राप्त करने के दौरान .. –

1

आपको यह जांचने की आवश्यकता हो सकती है कि संगठन पर एक पंजीकृत प्लगइन के रूप में एक ही नाम वाला प्लगइन मौजूद है या नहीं। प्लगइन को अनधिकृत करें और असेंबली और फिर से चरणों को पंजीकृत करें।

1

यदि आपके पास कुछ स्वचालित रूप से जेनरेट की गई कक्षाएं हैं, उदा। आपके द्वारा बनाए गए प्लगइन्स को प्लग-इन बनाएं राइट-क्लिक करें और फिर आपने इसे हटा दिया है, आपको RegisterFile.crmregister में इसके निशान साफ़ करना होगा। यदि यह एक प्लगइन था, तो आपको इसकी पूरी शाखा को इसके नाम से हटाना होगा।

7

मैं बस ठीक उसी मुद्दे का सामना करना पड़ा सीआरएम टूलकिट के साथ काम करते हुए।

यह मैं कैसे समस्या हल हो जाती है: करने के लिए सेटिंग्स/समाधान

  1. गो/Yoursolution सीआरएम में
  2. हटाएँ एसडीके संदेश प्रसंस्करण प्लगइन विधानसभा
  3. से संबंधित प्रविष्टियों से प्लगइन विधानसभा खुद को हटाएँ समाधान
  4. दृश्य स्टूडियो पर वापस जाएं और तैनात

मैं करने के लिए मैन्युअल रूप से नहीं था एड यह कुछ भी

1

यह तब हो सकता है जब आप अपनी प्लगइन के मुख्य श्रेणी के नाम को बदल/दोबारा बदल दें। (जैसे जब कोड विश्लेषण शिकायत आप वर्तनी की गलती है और आप इसे ठीक) इस समस्या को केवल आप तैनाती

कर अगली बार दिखाई देगा इसलिए यदि आप अपने प्लगइन क्लास का नाम chnaged है ...

  1. डिफ़ॉल्ट सीआरएम समाधान में से "प्लगइन-इन सभाओं" RegisterFile में
  2. देखो अपने प्लगइन को हटा दें।अपनी प्लगइन की crmregister फ़ाइल। XML टैग पर आपको अपने क्लास नाम के 3 संदर्भ दिखाई देंगे - इनमें से कुछ को अपडेट नहीं किया जा सकता है।
  3. इस फ़ाइल में नाम अपडेट करें और पुन: नियोजित करें।

किया गया।

, (ठीक सिर्फ देखा मसूद Ghabachi इस उम्र पहले उल्लेख किया है ...)

0
उपरोक्त स्थितियों में से अलग

फ़ाइल या .pfx फ़ाइल .snk की जाँच करें। क्या यह आपकी दूसरी तैनाती में बदल जाता है।

इस मामले में पुराने स्रोत कोड का उपयोग करने का प्रयास करें या अन्यथा आपको प्लग/वर्कफ़्लो को फिर से पंजीकृत करने की आवश्यकता है।

0

सुनिश्चित करें कि आपकी प्लगइन/वर्कफ़्लो क्लास एक सार्वजनिक कक्षा है।

मुझे एक ही त्रुटि मिली क्योंकि मेरी प्लगइन कक्षा निजी थी।

0

रजिस्टर जांचें File.crmregister कार्यप्रवाह संपत्ति TypeName में कोई रिक्त स्थान नहीं होना चाहिए।

0

मैंने हस्ताक्षर कुंजी फ़ाइल बदल दी और त्रुटि प्राप्त की, इसे पिछली कुंजी फ़ाइल में बदलकर मेरे लिए समस्या हल की।

0

आपका संस्करण पहले से ही एक अपग्रेड के लिए प्रकाशित किया गया है जैसा ही होना चाहिए। हमारे पास 1 प्रमुख, 0 नाबालिग का असेंबली संस्करण था - और जिसे हमने प्रकाशित करने की कोशिश की वह 12 प्रमुख, 0 नाबालिग था।

हमने विजुअल स्टूडियो समाधान संख्या को संस्करण 1.0.0.0, बिल्ड, लोड असेंबली, अपडेट में बदल दिया - और यह काम किया!

इसे हटाने से वर्कफ़्लो से निर्भरता के कारण समस्या का समाधान नहीं होगा यदि उनका उपयोग किया गया था।

हमने ट्रेसिंग ऑन को स्विच किया और अपराधी को खोजने के लिए एसक्यूएल स्क्रिप्ट पाई।

0

मुझे यह प्राप्त हुआ है जब रजिस्टर में पोस्ट इमेज तत्व के बाद प्रीइमेज तत्व रखा गया था। अपने स्थानों को स्वैपिंग इसे ठीक कर दिया।

+0

क्या आप अपने समाधान को आपके द्वारा प्रदान किए गए समाधान के बारे में थोड़ा और विवरण जोड़कर विस्तारित कर सकते हैं? – abarisone

3

हमारे मामले में हमने आईएलएमर्ज का उपयोग किया और गलती से हमने माइक्रोसॉफ्ट.एक्सएम.एसडीके.एलएल को हमारी प्लगइन में विलय कर दिया, इस डीएल को हटाने (स्थानीय = झूठी प्रतिलिपि) इस मुद्दे को हल किया।

इससे मर्ज किए गए dll वैसे भी काम नहीं कर रहा था फेंक के रूप में, जबकि सदस्य अधिभावी सुरक्षा अपवाद विरासत सुरक्षा नियमों का उल्लंघन किया: 'Microsoft.IdentityModel.Claims.ClaimsIdentity.System.Runtime.Serialization.ISerializeable.GetObjectData इस GetObjectData वर्तमान Microsoft.Xrm में था Sanddox परिनियोजन से .Sdk.dll सुरक्षा अपवाद।