2016-12-04 18 views
6

私は現在、異なるプラットフォームへの移植を容易にするために.NET Coreライブラリを使用するWPFのデスクトップアプリケーションを開発中です。しかし、WPFアプリケーションから.NET Coreライブラリを参照できないようです。参照WPFの.NET Core 1.0ライブラリ

私はfollwing解決しようとした:

  • リファレンスプロジェクト: Visual Studioが.exeまたはそれがあるにもかかわらず、.dllをされていないプロジェクト文句を。

  • コンパイル済みの.dllを参照してください。これは実際には醜いですが、最初はうまくいくようです。 IntellisenseはそれでOKで、WPFプロジェクトはうまくコンパイルされます。しかし、.NET Coreプロジェクトの機能を使用するとすぐにBadImageFormatExceptionがスローされます。

  • dotnet pack .nupkg:追加のパッケージを一括してインストールし、機能が使用されているときにBadImageFormatExceptionをスローします。私は2つのオプションがここにあります集めることができるものから、

  • 二つのプログラムの間で文字列としてすべてのオブジェクトを.NETコアコンソールプロジェクトを作成して渡すような本当にハック何かをする

または

  • .NET CoreをあきらめてEF6を使用してください。

ここに私のproject.jsonです:

{ 
    "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" 
    } 
} 

私はdnx451net451の両方を試してみました。 WPFプロジェクトも.net 4.5.1をターゲットにしています。私は "Visual Studio 2015 Update 3"を ".NET Core 1.0.1 VS 2015 Tooling Preview 2"と併用しています。

答えて

4

project.jsonはライブラリには不適切です。ライブラリプロジェクトは、次のようになります。あなたがdotnet packを実行すると

{ 
    "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" 
    } 
} 

、2つのDLLが生成されます:.NET 4.5.1用と.NETの標準1.3(またはどちらnetstandardあなたがターゲットにする)のための1つ。 .NET 4.5.1 DLLはWPFプロジェクトと互換性があります。

+0

申し訳ありませんが、私がエントリーポイントを発行しないと 'dotnet ef'が動作しないという点を除いて、あなたの答えはうまくいきます。回避策は非常に単純です(行を戻すだけです)が、それは言及する価値があると思いました。 –

+0

@AlexanderHoischen興味深いことに、以前はそれを見ていませんでした。 –

関連する問題