2011-08-16 11 views
8

में .net2.0 dll तक पहुंचने के लिए मैं अपने .NET4.0 dll में .NET 2.0 dll लोड करना चाहता हूं। मैंने समाधान की खोज की और 'urLegacyV2RuntimeActivationPolicy' विशेषता को पाया जो मैं अपने ur.config में इस यूआरएल में जोड़ सकता हूं: Mixed mode assembly is built against version 'v1.1.4322'.net 4.0 dll

लेकिन मेरे लिए समस्या यह है कि, मेरे मामले में, मैं इसका उपयोग करने की कोशिश कर रहा हूं मेरे 4.0 डीएलएल में .net2.0 dll और 4.0 exe ​​ में नहीं। कारण यह 4.0 डीएलएल तब एक्सेल में एक ऑटोमेशन ऐड-इन के रूप में उपयोग किया जाता है।

वर्तमान में, जब मैं Excel से अपने .NET 4.0 API (जो एक सुविधा के लिए 2.0 डीएल लोड करता है) को प्राप्त करता है, तो मुझे लगता है कि 'मिश्रित मोड 2.0 डीएल 4.0 रनटाइम में लोड नहीं किया जा सकता है' जो समझ में आता है क्योंकि COM ने लोड किया है 4.0 सीएलआर और इसलिए 2.0 डीएल लोड नहीं कर सकता है।

किसी भी तरह से मुझे 2.0 रनटाइम लोड करने के लिए अपना 4.0 डीएलएल बनाना होगा। मैंने 4.0 dll पर app.config जोड़ने का प्रयास किया लेकिन मुझे लगता है कि केवल .exe clr को लोड करने के लिए डिफ़ॉल्ट रूप से app.config को पढ़ता है। 4.0 डीएल की परियोजना में मेरे ऐप.कॉन्फिग में यह है लेकिन इसका कोई उपयोग नहीं है।

<?xml version="1.0"?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
    <runtime> 
    <NetFx40_LegacySecurityPolicy enabled="true"/> 
    </runtime> 
</configuration> 

मैं कैसे .NET 2.0 dll उपयोग करने के लिए मेरी .NET 4.0 DLL सक्षम करने के लिए इस समस्या को हल करते हैं?

धन्यवाद, मणि

+1

क्या आपने केवल सामान्य डीएल के रूप में .net 2 dll जोड़ने की कोशिश की है? – Jethro

+0

ऐसा लगता है कि यह .NET 2.0 DLL नहीं है - यह एक .NET 1.1 DLL है। –

+7

.config फ़ाइल अच्छी है, लेकिन इसे excel.exe.config होना चाहिए और Office निर्देशिका में कॉपी किया जाना चाहिए जहां एक्सेल स्थित है। –

उत्तर

4

जवाब पहले से ही हंस Passant द्वारा किया जाता है, लेकिन वह एक टिप्पणी के रूप में पोस्ट किया गया है। इसलिए, यहां अलग से इसका जवाब दें।

कॉन्फ़िगरेशन को excel.exe.config कहा जाना चाहिए और इस परिदृश्य के लिए excel.exe के समान कार्यालय निर्देशिका में होना चाहिए।