2016-12-04 6 views
6

से संदर्भ .NET कोर 1.0 लाइब्रेरी मैं वर्तमान में WPF में डेस्कटॉप एप्लिकेशन विकसित कर रहा हूं, जो विभिन्न प्लेटफॉर्म पर पोर्टिंग को आसान बनाने के लिए .NET कोर लाइब्रेरी का उपयोग करता है। हालांकि, मैं WPF ऐप से .NET कोर लाइब्रेरी का संदर्भ नहीं ले सकता।डब्ल्यूपीएफ

  • संदर्भ परियोजना: दृश्य स्टूडियो के बारे में परियोजना .dll भले ही यह है एक .exe जा रहा है या नहीं शिकायत

    मैं follwing समाधान की कोशिश की।

  • संकलित। डीएलएल का संदर्भ लें: यह वास्तव में बदसूरत है, लेकिन ऐसा लगता है कि यह पहले काम करता है। Intellisense इसके साथ ठीक है और डब्ल्यूपीएफ परियोजना बस ठीक है। लेकिन जैसे ही मैं .NET कोर प्रोजेक्ट से किसी भी कार्यक्षमता का उपयोग करना चाहता हूं, एक BadImageFormatException फेंक दिया जाता है।

  • dotnet pack प्रोजेक्ट और संदर्भ .nupkg: अतिरिक्त संकुल का एक समूह स्थापित करता है और किसी भी कार्यक्षमता का उपयोग होने पर BadImageFormatException फेंकता है।

मैं क्या दो विकल्प यहाँ हैं इकट्ठा कर सकते हैं से

:

  • कुछ दो कार्यक्रमों के बीच तारों के रूप में एक .NET कोर कंसोल प्रोजेक्ट को बनाने और सभी वस्तुओं को पारित करने की तरह वास्तव में hacky करो

या:

  • बस नेट कोर पर छोड़ देना और EF6 का उपयोग करें।

    { 
        "version": "1.0.0-*", 
    
        "buildOptions": { 
        "debugType": "portable", 
        "emitEntryPoint": true 
        }, 
    
        "dependencies": { 
        "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0", 
        "Microsoft.EntityFrameworkCore.Design": { 
         "version": "1.0.0-preview2-final", 
         "type": "build" 
        } 
        }, 
    
        "frameworks": { 
        "netcoreapp1.0": { 
         "dependencies": { 
         "Microsoft.NETCore.App": { 
          "type": "platform", 
          "version": "1.0.0" 
         } 
         }, 
         "imports": "dnxcore50" 
        }, 
        "dnx451": {} 
        }, 
    
        "tools": { 
        "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
        } 
    } 
    

    मैं dnx451 और net451 दोनों की कोशिश की:

यहाँ मेरी project.json है। डब्ल्यूपीएफ प्रोजेक्ट भी लक्ष्य 4.5.1 को लक्षित कर रहा है। मैं ".NET कोर 1.0.1 वीएस 2015 टूलींग पूर्वावलोकन 2" के साथ "विजुअल स्टूडियो 2015 अपडेट 3" का उपयोग कर रहा हूं।

उत्तर

4

आपकी project.json लाइब्रेरी के लिए सही नहीं है। एक पुस्तकालय परियोजना दिखना चाहिए:

{ 
    "dependencies": { 
     "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0", 
     "Microsoft.EntityFrameworkCore.Design": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
     } 
    }, 
    "frameworks": { 
    "net451": { }, 
    "netstandard1.3": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0" 
     } 
    } 
    }, 
    "tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
    } 
} 

जब आप dotnet pack चलाने के लिए, दो DLLs का उत्पादन किया जाएगा: .NET 4.5.1 के लिए और एक नेट स्टैंडर्ड 1.3 (या जो भी netstandard आप लक्षित करना चाहते) के लिए। .NET 4.5.1 DLL आपके WPF प्रोजेक्ट के साथ संगत होना चाहिए।

+0

स्वीकार करने में इतने लंबे समय तक खेद है, लेकिन आपका जवाब ठीक काम करता है, इस तथ्य को छोड़कर कि 'डॉटनेट ef' काम नहीं करता है अगर मैं एक प्रविष्टि बिंदु नहीं छोड़ता। कामकाज काफी सरल है (बस लाइन को वापस रखें), लेकिन मैंने सोचा कि यह उल्लेखनीय है। –

+0

@AlexanderHoischen दिलचस्प, मैंने पहले यह नहीं देखा था। –