System.Windows.Interactivity को प्रोजेक्ट में कैसे जोड़ें?


107

मेरी परियोजना गायब है System.Windows.Interactivity। Google का कहना है कि मुझे एक्सप्रेशन ब्लेंड स्थापित करना है, लेकिन मेरे अन्य कंप्यूटर पर मेरे पास यह लाइब्रेरी है और मेरे पास एक्सप्रेशन ब्लेंड स्थापित नहीं है। तो प्राप्त करने का एक और तरीका होना चाहिए System.Windows.Interactivity? मुझे क्या करना चाहिए? (अभी मेरे पास दूसरा कंप्यूटर नहीं है इसलिए मैं इस लाइब्रेरी को कॉपी नहीं कर सकता :)

जवाबों:


92

व्यवहार के लिए आधिकारिक पैकेज है Microsoft.Xaml.Behaviors.Wpf

यह ब्लेंड SDK में हुआ करता था और यह पदावनत हो गया। यदि आपको माइग्रेट करने की आवश्यकता है, तो अधिक विवरण के लिए जनवरी का उत्तर
देखें ।


2
4.6 के साथ संगत नहीं है!
एलरी

3
यह बहुत दुखद है और मुझे पागल बनाता है। मैं दुख की बात है कि इस कारण से कोड का उपयोग कर रहा हूं। शर्म आती है एमएस पर।
alerya

1
@ माला: 1. यदि आप वास्तव में चाहते हैं तो आप स्वयं उस एसडीके के व्यवहार को पूरी तरह से लिख सकते हैं। 2. क्या आपने nu-get पैकेज की कोशिश की है?
HB

1
@ शमी: ज़रूर!
HB

6
मुझे पता है कि यह आप में से कुछ के लिए स्पष्ट है, लेकिन आपको संदर्भ की आवश्यकता है: ऐसा xmlns:i="http://schemas.microsoft.com/xaml/behaviors"नहीं है: xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"जैसे कि हर दूसरे उदाहरण में मैंने देखा है।
योसेफ बर्नाल

124

हालाँकि यह मुद्दा काफी पुराना है, लेकिन मुझे लगता है कि यह प्रासंगिक समाचार / सबसे हालिया उत्तर है: Microsoft ने खुलेआम XAML व्यवहार और इस पोस्ट को अपडेट करने के लिए एक ब्लॉग पोस्ट पोस्ट किया: https://devblogs.microsoft.com/dotnet/open -sourcing-XAML-व्यवहार के लिए WPF /

आपको एक क्लिक बचाने के लिए, यह मुख्य कदम है:

  1. "Microsoft.Expression.Interactions" और "System.Windows.Interactivity" का संदर्भ निकालें
  2. Microsoft.Xaml.Behaviors.Wpf NuGet पैकेज स्थापित करें ।
  3. XAML फाइलें - xmlns नामस्थानों को बदलें http://schemas.microsoft.com/expression/2010/interactivity और http://schemas.microsoft.com/expression/2010/interactions के साथ http://schemas.microsoft.com/xaml / व्यवहार
  4. C # फाइलें - c की फाइलों को “Microsoft.Xaml.Interactivity” और “Microsoft.Xaml.Interactions” में “Microsoft.Xaml.Behaviors” से बदल दें।

6
यह है - अब - बिल्कुल सही जवाब। मुझे बहुत खुशी है कि Microsoft ने आखिरकार ऐसा किया है। इसे पोस्ट करने के लिए धन्यवाद। मुझे यकीन नहीं है कि मैं ब्लॉग प्रविष्टि से कैसे चूक गया। "कूल, नए Microsoft NuGet पैकेज" के लिए एक समाचार पत्र होना चाहिए।
स्कैस्ट

1
यदि स्टैकओवरफ़्लो में भावनाएं हैं, तो मैं आपके उत्तर के लिए एक हार्ट का उपयोग करूंगा
इब्राहिम कैस इब्राहिम

1
2019 तक चयनित उत्तर होना चाहिए। इस महत्वपूर्ण अद्यतन को जोड़ने के लिए समय निकालने के लिए धन्यवाद।
मिनट

1
मेरे लिए काम किया। मैंने 2015 से VS2019 पर समाधान अपडेट किया। धन्यवाद।
कुलागिन

1
इसके अलावा, यदि आप स्कीमास में किसी भी आकार का उपयोग कर रहे हैं। Microsoft.com / संपीड़न / 2010 / निकासी , आप इस नगेट पैकेज का उपयोग कर सकते हैं - कोई कोड परिवर्तन आवश्यक नहीं है।
डैनियल एल्किंगटन

59

एक नया NuGet पैकेज है जिसमें System.Windows.Interactivity.dll शामिल है जो इसके साथ संगत है:

  • WPF 4.0, 4.5
  • सिल्वरलिग 4.0, 5.0
  • विंडोज फोन 7.1, 8.0
  • विंडोज स्टोर 8, 8.1

Expression.Blend.Sdk को स्थापित करने के लिए, पैकेज मैनेजर कंसोल में निम्न कमांड चलाएँ

PM> Install-Package Expression.Blend.Sdk

http://www.nuget.org/packages/Expression.Blend.Sdk/


10
ध्यान दें कि यह पैकेज आधिकारिक Microsoft वितरण नहीं है
piers7

2
यदि आपके पास MVVM लाइट पहले से स्थापित है, तो यह एक क्लैशिंग संस्करण पेश करेगा System.Windows.Interactivity। हल करने के लिए, ऊपर मेरा उत्तर देखें।
कंटैंगो


19

दृश्य स्टूडियो के लिए ब्लेंड के साथ , जो संस्करण 2013 से शुरू होने वाले विज़ुअल स्टूडियो में शामिल है, आप निम्नलिखित फ़ोल्डर में डीएलएल पा सकते हैं:

C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries

System.Windows.Interactivity.dllहालाँकि, जब तक आप इंटरएक्टिव नेमस्पेस का उपयोग करने वाले कार्यक्षमता को जोड़ने के लिए किसी मौजूदा प्रोजेक्ट के साथ विज़ुअल स्टूडियो के लिए ब्लेंड का उपयोग नहीं करते, तब तक आपको स्वयं को संदर्भ जोड़ना होगा । उस स्थिति में, ब्लेंड स्वचालित रूप से संदर्भ जोड़ देगा।


7
इससे मेरी परियोजना को ठीक करने में मदद मिली। विजुअल स्टूडियो 2017 के साथ, हमें विजुअल स्टूडियो इंस्टॉलर में जाना होगा और इसे व्यक्तिगत घटकों (एसडीके श्रेणी) में ढूंढना होगा।
प्रूलेउ

18

कभी-कभी, जब आप एक नया पुस्तकालय जोड़ते हैं, तो एक क्लैशिंग संस्करण पेश करता है System.Windows.Interactivity.dll

उदाहरण के लिए, NuGet पैकेज MVVM light लिए v4.2 की आवश्यकता हो सकती है System.Windows.Interactivity.dll, लेकिन NuGet पैकेज के Rx-XAMLलिए v4.5 की आवश्यकता हो सकती है System.Windows.Interactivity.dll। यह परियोजना को काम करने से रोकेगा, क्योंकि कोई भी संस्करण जिसमें 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 के नाम पर निर्भर करता है, संस्करण पर नहीं।

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

यहां छवि विवरण दर्ज करें


आपने ठीक यही पोस्ट यहां की, stackoverflow.com/questions/13514027/… कई बिंदुओं :)
Pix

14

वैकल्पिक समाधान दृश्य स्टूडियो इंस्टॉलर में अपने वर्तमान विज़ुअल स्टूडियो इंस्टॉलेशन को संशोधित करना है

Win+ 'एसडीके, लाइब्रेरीज़ और फ्रेमवर्क' के तहत 'व्यक्तिगत घटक' R %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe

जोड़ना Blend for Visual Studio SDK for .NET:

यहां छवि विवरण दर्ज करें इस घटक System.Windows.Interactivityको जोड़ने के बाद अपने नियमित स्थान पर दिखाई देना चाहिए Add Reference/Assemblies/Extensions


ऐसा लगता है कि यह केवल VS2017 या उससे पहले के लिए काम करेगा। बाद के संस्करणों के लिए, कृपया अन्य उत्तरों को देखें।


2
मेरे लिए प्रकट नहीं होता है :(
जूलियन

मेरे लिए भी प्रकट नहीं होता है। वीएस 2019 का उपयोग करते हुए
Barış Akkurt


1

मुझे यह Prism.WPF NuGet-Package के माध्यम से मिला। (इसमें Windows.System.Interactivity शामिल है)


0

यदि आप MVVM लाइट के साथ काम कर रहे हैं, तो आपको System.Windows.Interactivity Version 4.0(NuGet .dll काम नहीं) का उपयोग करना होगा :

PathToProjectFolder\Software\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll

इसे केवल .dll मैन्युअल रूप से संदर्भ के रूप में जोड़ें और यह ठीक होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.