2012-11-22 21 views
15

लोड नहीं किया जा सका मैंने अभी सिस्टम.विंडोज़.इंटरक्टिविटी असेंबली को जोड़ा। XamlParse मुझे रन टाइम पर एक अपवाद फेंक:फ़ाइल या असेंबली 'System.Windows.Interactivity'

फ़ाइल या विधानसभा लोड नहीं कर सका System.Windows.Interactivity, PublicKeyToken = 31bf3856ad364e35 'या अपनी निर्भरता में से एक। सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता है।

Google खोज केवल प्रिज्म से संबंधित परिणाम पाए गए - जिसका मैं उपयोग नहीं करता हूं।

कोई विचार क्यों ऐसा होता है?

+0

यह [अभिव्यक्ति स्टूडियो] का हिस्सा है (http://msdn.microsoft.com/en-us/library/system.windows.interactivity (v = expression.40) .aspx) – ChrisF

+1

तो? क्या मुझे कुछ स्थापित करना चाहिए? – Harry

+0

यहां एमएसडीएन पेज है - http://msdn.microsoft.com/en-us/library/system.windows.interactivity.invokecommandaction(v=expression.40).aspx – ChrisF

उत्तर

39

बस एक अनुमान, हो सकता है आप मुख्य परियोजना में पुस्तकालयों को संदर्भित नहीं कर रहे हैं।

यह मेरे साथ कई बार हुआ है।

+2

गाह। जब मैं असेंबली ए को असेंबली बी का उपभोग करने के लिए यादृच्छिक संदर्भ जोड़ना चाहता हूं तो मुझे इससे नफरत है। मैं चाहता हूं कि उपकरण इसे स्वयं ही समझ सकें। – dlf

+2

बस इस पर ठोकर खाई ... लेकिन यह बिल्कुल मददगार नहीं था। मैंने कभी सोचा नहीं होगा इस के –

6

कभी-कभी, जब आप एक नई लाइब्रेरी जोड़ते हैं, तो System.Windows.Interactivity.dll का एक संघर्ष संस्करण प्रस्तुत करता है।

यह परियोजना को काम करने से रोकता है।

ठीक करने के लिए, संपादन आपके app.config कुछ इस तरह देखने के लिए द्वारा एक सभा पुनर्निर्देशन बाइंडिंग जोड़ें:

<?xml version="1.0"?> 
<configuration> 
<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Windows.Interactivity" 
         publicKeyToken="31bf3856ad364e35" 
         culture="neutral"/> 
     <bindingRedirect oldVersion="4.0.0.0" 
         newVersion="4.5.0.0" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup> 
<appSettings> 
    <add key="TestKey" value="true"/> 
</appSettings> 

PublicKeyToken बदलने के बारे में चिंता मत करो, कि, सभी संस्करणों में निरंतर है यह रूप में .dll के नाम पर निर्भर करता है, संस्करण नहीं।

सुनिश्चित करें कि आप वास्तविक संस्करण है कि आप अंत पर इंगित करने के लिए अपने appConfig में newVersion से मेल खाते हैं:

enter image description here

+1

धन्यवाद, यह मेरे मामले में सही जवाब है – Ateik

9

तिलक के जवाब मुझे बाहर में मदद की एक बड़ी बात है, लेकिन मैं भी नाम करने की जरूरत XAML कोड में असेंबली "i" से कम से कम एक तत्व। जब तत्व का नाम दिया जाता है, तो विजुअल स्टूडियो सही ढंग से असेंबली को हुक करता है।

बदलें

<i:InvokeCommandAction Command="{Binding MyCommand}"/> 

<i:InvokeCommandAction Command="{Binding MyCommand}" x:Name="interactivityFix" /> 

इस जरूरत में पूरे XAML फाइल में केवल एक ही तत्व के लिए किया जाना चाहिए।

+1

मेरी विंडो को एक गैर-डब्ल्यूपीएफ अनुप्रयोग के अंदर एक डीएलएल से बुलाया जाता है। यह चाल चल रहा था, धन्यवाद! – Kolky

+0

मुझे बस इतना करना था कि मैं बस इतना जोड़ूं इस उत्तर के लिए नाम। निश्चित रूप से टूलींग के संबंध में मुझमें आत्मविश्वास पैदा करता है ... – curob

0

आप सिस्टम के संस्करण के लिए अपनी प्रत्येक परियोजना को स्कैन कर सकते हैं। Windows.Interactivity उदा। 4.0.0.0 या 4.5.0.0। साथ ही, एक संभावना है कि तीसरे पक्ष के डीएल में से एक संदर्भ हो सकता है, सिस्टम.Windows.Interactivity पर निर्भर करता है। तो सुनिश्चित करें कि आप अपने प्रोजेक्ट में संस्करण को संरेखित करें। यह आपकी समस्या को ठीक करना होगा।

+0

'इसे आपकी समस्या को ठीक करना' की बजाय, कुछ कम बलवान कोशिश करें और कहें। अगर यह ठीक नहीं होता है (और चूंकि पोस्ट 3 है साल पुराना है, शायद यह पहले से ही एक फिक्स है), तो आपका जवाब बहुत कम हो जाएगा। – David

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