2016-12-09 13 views
2

私のプロジェクトのデータベースの初期マイグレーションを作成するのに2日を費やしました。これはとても駄目です。ドキュメントの各プレビューバージョンは異なる方向を指しています。しばらくの間、arroundを飛ばしている未解決の問題がたくさんあります。 EF Tools 1.1.0-preview4 Unrecognized option '--config'またはこのいずれかで:https://github.com/aspnet/EntityFramework/issues/7083どちらも仕事EFコア1.1でマイグレーションを作成できません

私のプロジェクトでは、私はプレビュー版、この問題に提案しても回避策のすべての組み合わせをしようと試みたと思うが、フルフレームワーク(net462)上で実行されているAspNetCoreアプリケーションです。

これは、関連部分と私のproject.jsonの抽象的ではありません:

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
     "platform": "x86", 
     "debugType": "full", 
     "preserveCompilationContext": true, 
     "emitEntryPoint": true 
    }, 

    "dependencies": { 
     .... 
     "Microsoft.EntityFrameworkCore": "1.1.0", 
     "Microsoft.EntityFrameworkCore.Design": "1.1.0", 
     "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0", 
     "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0", 
     .... 
     }, 

     "tools": { 
     "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final", 
     "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final" 
     }, 

     "frameworks": { 
      "net462": { 
      } 
     }, 

    ... 
} 

提案の回避策は動作しません。私の場合は、どちらも毎晩を使用して構築したり1.0.0-にツールをダウングレードプレビュー3。

私はこのエラーを打つツールの1.1.0-preview4-最終版を使用する場合:

Unrecognized option --config 

を私は毎晩私は、このいずれかを取得構築し使用している場合は、ウィッヒは私のアプリとして、何とか不合理です1つのプロジェクトだけを持っており、DLLではありません(それはまたemitEntryPointあり:真のセット)を

Could not load assembly 'Sales'. Ensure it is referenced by the startup project 'Sales' 

しかし、私は、私はこれを取得ツールの1.0.0-preview3決勝にダウングレードする場合、これは、私のお気に入りの一つです超現実的なもの:

error: Package Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0-preview3-final is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0-preview3-final supports: netcoreapp1.0 (.NETCoreApp,Version=v1.0) 

私は2番目の文の最初の1のちょうど反対のことを言っていたことを確認し得るためにそれを5回読まなければならなかった...それは冗談です!

はさらに、コマンドはもうPMCに働いていない、私はインストールツールの関係なくウィッヒバージョンに関係なく、私はパッケージを復元した場合、私は、コンピュータを再起動した場合...

は、私はクレイジー取得していますすべてのバージョンが非常に多く、私はマイグレーションを作成したいだけです。私が使用しなければならないツールのバージョンには関係ありません...現時点で有効な設定がありますか、または私は不可能なものを試していますか? 誰もが完全な.netフレームワーク(net462)をターゲットとするasp.netコアアプリケーション内で、efツールの任意のバージョンで移行を作成できましたか?

もしそうなら、どうですか?

EDIT:

.netcoreapp1.0するためのプロジェクトを対象に、現在、互換性のない参照を除去した後、私はこのエラーを打つ:

A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App\1.0.1' 

ここで何が起こっています?私は本当に.netコアにうんざりしています。それはまだ最初のバージョンです。私はこれがベータ版である間、このような多くの問題を抱えていましたが、今は物事が安定しているはずです...変更できるAPI、アセンブリ名、名前空間、パッケージ名、慣習などは20倍変わっています。今、ツールのプレビュー5,6または25を待ってみましょう.2035年にEF Coreには適切なツールと手順が用意されていますが、このテクノロジに賭けることは何百万時間もわかりません!

EDIT 2:

{ 
    "projects": [ "src", "test" ], 
    "sdk": { 
     "version": "1.0.0-preview2-1-003177" 
    } 
} 

および1.0.0-preview2-1-003177フォルダが存在し、唯一であることを追加する:

コメントglobal.json 1として関連し得ます1つはC:¥Program Files(x86)¥dotnet¥sdk¥とC:¥Program Files¥dotnet¥sdk¥

+0

問題/例外/エラーは何ですか? – Dmitry

+0

@Dmitry - 十分なエラーがありますか? – Vi100

+0

はい、いいえ:)プロジェクトフォルダ内に悪夢がありますが、「なぜ」を理解するには詳細が必要です。 1) 'global.json'ファイルを表示してください。 2)フレームワークを手動で変更した後、binとobjのサブフォルダを削除し、VSを再起動し、 'dotnet restore'を実行します。私のマシンでこのように "奇妙な"問題がいくつか解決されました:)とにかく、EFCore 1.0.0と1.1.0、net46とnetstardart1.3、netcoreapp1.0と1.1(しかしnet462は試していませんでした) 。小さな非作業デモプロジェクトを作り、githubのどこかにプッシュできますか? – Dmitry

答えて

2

私は自分自身の質問に答えることを嫌いですが、あまりにも多くの人がこの路地...同様の問題で苦労している人たちのために私は私がいることを紹介したとき、私は本当にわからないんだけど

...、マイグレーションが再び働き始め

... 
"buildOptions": { 
    "platform": "x86", <- THIS!!! 
    "debugType": "portable", 
    "preserveCompilationContext": true, 
    "emitEntryPoint": true 
}, 

「プラットフォーム」キーを削除した後:エルその鉱山はproject.jsonにこの構成から来ました.NET Core SDKのバージョン1.1にアップグレードする前に移行を作成しようとしなかったためです。たぶんそれはインターネット上の例の一つからコピーされたかもしれません、それは以前のバージョンのものかもしれませんが、私は知らないのですが、それは私を数日間狂ってしまった、私はそれが誰かを助けてくれることを願っています。

+0

良いニュース! EFのバグ(または誰が知っているかもしれない)になるとすぐに、Githubで小さなプロジェクト(余分なものを削除し、必要最小限のものを削除)を作成することをお勧めします。 https://github.com/aspnet/EntityFramework/issues) - これは今後誰かを助けることでしょう。 – Dmitry

関連する問題