डोडी प्रश्न के लिए माफ़ी - अगर किसी के पास बेहतर सुझाव है तो पुन: प्रयास करने में खुशी होगी।मैं एक असेंबली को गतिशील रूप से संदर्भित कैसे कर सकता हूं जो किसी अन्य असेंबली की तलाश में है?
मैं गतिशील एक विधानसभा अन्य अनुप्रयोग से संबंधित लागू द्वारा एक वस्तु बनाने के लिए कोशिश कर रहा हूँ।
निम्नलिखित PowerShell कोड मेरे लिए अच्छी तरह से काम कर रहा है:
[Reflection.Assembly]::LoadFrom("C:\Program Files\Vendor\Product\ProductAPI.dll")
$bobject = new-object ProductAPI.BasicObject
$bobject.AddName("Some Name")
मैं सी # में एक ही बात करने के लिए संघर्ष कर रहा हूँ।
System.Reflection.Assembly myDllAssembly =
System.Reflection.Assembly.LoadFile("C:\\Program Files\\Vendor\\Product\\ProductAPI.dll");
System.Type BasicObjectType = myDllAssembly.GetType("ProductAPI.BasicObject");
var basicObjectInstance = Activator.CreateInstance(BasicObjectType);
एक TargetInvocationException में अंतिम पंक्ति के परिणाम: मैं इस समय इस राशि StackOverflow पर अन्य पदों के आधार पर।
{ "फ़ाइल या विधानसभा लोड नहीं कर सका AnotherObject, संस्करण = 1.2.345.0, संस्कृति = तटस्थ, PublicKeyToken = अशक्त 'या अपनी निर्भरता में से एक। प्रणाली निर्दिष्ट फ़ाइल नहीं मिल सकता है।"
ऐसा लगता है कि BasicObject निर्माता (एक ही फ़ोल्डर में AnotherObject.dll से) AnotherObject आह्वान करने के लिए कोशिश कर रहा है, लेकिन यह नहीं मिल रहा।
इस बारे में कोई सुझाव कैसे प्राप्त करें?
मुझे लगता है कि DLL आप लोड कर रहे हैं काम करने के लिए एक और DLL की आवश्यकता है: dll संदर्भ NewtonSoft.Json.dll) और इसके अलावा आप क्या निर्भरता यह नहीं मिल सकता है के बारे में जानकारी दे देंगे। आप इस उपकरण का उपयोग कर डीएलएल की निर्भरताओं का पता लगा सकते हैं। http://www.dependencywalker.com/ – cgTag
जब आपको अनुपलब्ध DLL लगता है। या तो इसे अपने रिलीज फ़ोल्डर में कॉपी करें या इसे शामिल करने के लिए विंडोज़ पाथ को संशोधित करें। – cgTag
वर्थ जांच रहा है कि ['FUSLOGVW.exe'] (http://msdn.microsoft.com/en-us/library/e74a18c4.aspx) (* असेंबली बाइंडिंग लॉग व्यूअर *) के साथ लोड करने में असफल रहा है (जो कि आपको दिखाएगा कि क्या है लोड होने में विफल (और जहां .NET लोडर दिख रहा है)। – Richard