के दो संस्करण लोड करें, मुझे उनके आउटपुट की तुलना करने के लिए उसी DLL के दो संस्करणों को लोड करने की आवश्यकता है। मुझे लगता है कि मैं इसके लिए ऐपडोमेन का उपयोग कर सकता हूं, लेकिन मुझे कुछ मान्यताओं की आवश्यकता है।.NET: उसी DLL
उत्तर
ठीक है, यह वास्तव में कल्पना की तुलना में बहुत आसान था।
m_Assembly1 = Reflection.Assembly.LoadFile(IO.Path.Combine(System.Environment.CurrentDirectory, "Old Version\Some.dll"))
m_Assembly2 = Reflection.Assembly.LoadFile(IO.Path.Combine(System.Environment.CurrentDirectory, "New Version\Some.dll"))
Console.WriteLine("Old Version: " & m_Assembly1.GetName.Version.ToString)
Console.WriteLine("New Version: " & m_Assembly2.GetName.Version.ToString)
m_OldObject = m_Assembly1.CreateInstance("FullClassName")
m_NewObject = m_Assembly2.CreateInstance("FullClassName")
यहां से बाहर मैंने अपने परीक्षण चलाने के लिए देर से बाध्यकारी और/या प्रतिबिंब का उपयोग किया।
एमएसडीएन पर सक्रियकर्ता। क्रिएट इंस्टेंस() देखें। कोड नमूने के अंदर।
Here कि करने के लिए एक गाइड है:
extern alias oldVer;
extern alias newVer;
और जब आप संकलन:
csc /r:oldVer=Somepath\ClassLibrary.dll /r:newVer=AnotherPath\ClassLibrary.dll program.cs
या दृश्य स्टूडियो में संपत्ति टैब में "अन्य नामों" फ़ील्ड बदलें आपके प्रोजेक्ट संदर्भों के alt text http://www.code-magazine.com/ArticleImage.aspx?QuickID=0507041&Image=Figure%202.bmp
यदि क्लासLibrary.dll किसी अन्य असेंबली का संदर्भ देता है, तो हमें इस दृष्टिकोण के साथ कुछ समस्या थी, क्लियर केवल निर्भरता के पहले संस्करण को हल करेगा, दूसरी संस्करण निर्भरता को पहले संस्करण के रूप में हल किया गया था। हमें AppDomain.ResolveAssembly की सदस्यता लेनी पड़ी और इस समस्या को दूर करने के लिए कुछ ग़लत चीजें करें। –
मेरा टेस्ट दोहन पहले से ही वीबी में लिखा गया है, इसलिए निश्चित रूप से इसे सी # -ऑनली फीचर होना होगा। –
- 1. एक .NET DLL
- 2. .net 1.0 DLL के
- 3. .NET DLL के
- 4. .net 4.0 dll
- 5. टूलटिप पर AccessViolationException COMCTL32.dll - .NET 4.0
- 6. पावरहेल 2.0 एक .NET 4.0 dll
- 7. .NET DLL में प्रकट कैसे करें?
- 8. .NET DLL फ़ाइल से पीडीबी उत्पन्न करें?
- 9. .NET DLL संदर्भ/निर्भरता जांच उपयोगिता
- 10. .NET Dll नरक को कैसे हल करें?
- 11. .NET विधि (.dll) और परिलक्षित संस्करण
- 12. टीएफएस 2010 .Net 4.0 XmlSerializers DLL .NET 3.5 अनुप्रयोग
- 13. .NET सेविंग जेपीईजी उसी गुणवत्ता के साथ
- 14. घटक dll
- 15. * .dll
- 16. DLL
- 17. DLL
- 18. EXE या DLL
- 19. सी # से एक गैर .NET DLL संस्करण पढ़ें?
- 20. .NET 3.5 DLL अपनी स्वयं की कॉन्फ़िगरेशन फ़ाइल
- 21. सी पुस्तकालय को .NET dll में कैसे संकलित करें?
- 22. रजिस्टर Wix दौरान एक .NET COM DLL स्थापित
- 23. Win32 प्रक्रिया से .NET DLL को कैसे कॉल करें?
- 24. क्या लुआ कोड से .NET dll लोड करना संभव है?
- 25. .NET के लिए सबसे अच्छा DLL-Base डेटाबेस क्या है?
- 26. .NET में, क्या DLL को पंजीकृत करने की आवश्यकता है?
- 27. केवल .dll संदर्भ
- 28. स्थानीय COM DLL
- 29. msvcp90.dll गलत msvcr90.dll पर निर्भर करता है?
- 30. NUnit - एक DLL
क्या असेंबली आप तुलना करना चाहते हैं अन्य संदर्भ हैं? असेंबली मजबूत नामित है? –
नहीं, असेंबली के पास मजबूत नाम नहीं हैं। –
नहीं, असेंबली में अन्य संदर्भ नहीं हैं। –