मेरे पास पुराने कीवॉल्ट पैकेज के लिए मेरे कोड पर निर्भरता है

अगर मैं अपने फ़ंक्शन में जांचता हूं कि यह क्या लोड करता है:

var a = AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(Path.Combine(assemblyFolder, "Microsoft.Azure.KeyVault.dll")));

मैं देखता हूं कि यह 3.0.0 लोड करता है न कि 1.0.0 - और यह भी से लोड होता है

AppData/Local/AzureFunctionsTools/Releases/2.24.0/cli/Microsoft.Azure.KeyVault.dll

और मेरे फ़ंक्शन आउटपुट का बिन फ़ोल्डर नहीं है ... \bin\Debug\netcoreapp2.2\bin\

आउटपुट बिन में डीएलएस का उपयोग करने के लिए मैं अपने फ़ंक्शन प्रोजेक्ट को कैसे बता सकता हूं?

ऐसा नहीं है कि असेंबली लोड सामान केवल क्या हो रहा है डीबग करने के लिए है। असेंबली संस्करण 1.0.0 और 3.0.0 के अनुरूप नहीं होने के कारण मेरा क्लाइंट कोड बाद में विफल हो जाता है।

1
Poul K. Sørensen 18 जून 2019, 10:45

1 उत्तर

सबसे बढ़िया उत्तर

आप नीचे दिए गए कोड का उपयोग कर सकते हैं:

var binPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string dll = Directory.GetFiles(binPath, "Microsoft.Azure.KeyVault.dll", SearchOption.AllDirectories)[0];
Assembly loadedAssembly = Assembly.LoadFile(dll);

स्नैपशॉट: यहां छवि विवरण दर्ज करें

1
Joey Cai 18 जून 2019, 08:29