2017-02-15 9 views
1

.NET 4.5.2のライブラリも使用している場合は、asp.netコアアプリケーションを展開することができればwonderinfです。私はASPを使用する他のセクションでASP.NETをフル.NETで展開する

"frameworks": { 
    "net452": { 
     "frameworkAssemblies": { 
     "System.ServiceModel": "" 
     }, 
     "dependencies": { 
     } 
    }, 
    "netcoreapp1.1": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.1.0" 
     } 
     }, 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    } 

は私が持っている「フレームワーク」セクションで完全な.NET から、私のproject.jsonに来るSyndicationFeedを使用する私のアプリでは、私の問題を説明するために、 .COREパッケージのような:

"Microsoft.EntityFrameworkCore.Design": "1.1.0", 
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 
"Hangfire.AspNetCore": "1.6.8", 

以上。

したがって、IISに展開することが可能です。私はASP.COREまたは完全な.NETで実行すると、サーバーに展開する必要があります。

+0

シンジケートフィードを手動で移植できませんか?私たちがしたのは、ドットネット以外のコアパッケージのコードを逆コンパイルしてemドットネットをコンパクトにすることです。ほとんどの場合、1パッケージにつき1時間半しかかかりませんでした。 (私は曇りのためにこれをやった) –

答えて

1

要するに、可能です。しかし、完全な.NET Frameworkが必要です(サーバー上)。

長い物語:projects.jsonで2 frameworksを持つ

が効果的にコンパイル/出版時に(netcoreapp1.1のために他のnet462に1つ、)二つの異なるアプリケーションを作成します。これは、同じソースコードから異なるフレームワーク用にコンパイルされた2つの異なるアプリケーションです。

最初に実行する(net462用)には、.NET Frameworkがインストールされたマシンが必要です。その他(netcoreapp用)では、.NETコアがインストールされている必要があります。 「スワップ」することはできません( -buildアプリを.NET Coreに実行してください)。

あなたの目を見てproject.jsonあなたのアプリが正常にコンパイルされるとは思えません。アプリが動作するにはSystem.ServiceModelが必要です。しかし、それはnet462でのみ利用可能です。これは、コンパイル時に、最初のapp(net462用)が正常にコンパイルされ、2番目のネット(netcoreapp)が失敗する(クラスが見つからない、名前空間が見つからないなど)ことを意味します。

project/solutionフォルダのコマンドラインからdotnet buildまたはdotnet publishを実行してください。何かエラーがありますか?

したがって、.NET Coreで作成/ビルド/実行することはできませんが、.NETコアでは使用できないパッケージ/クラスが必要です。

考えられる解決策:

  • はnetcore互換(存在する場合、私は知らない)、または再ビルド(ポート)互換性があるように、既存の(ジョエルが言うように)のためのパッケージを交換してください。
  • このパッケージを完全に削除します(必要なコードを自分で実装します)。
  • ターゲットを指定しないでくださいnetcoreapp1.1;
  • このパッケージを使用する場合は条件付きコンパイル(#if)を追加してください。そうすれば、アプリのnet462 - バージョンのみに使用されます。それ以外の場合(#else)は、NotImplementedException、null結果、またはそれ以外のものを追加します(依存します)。異なるアプリがコンパイル後に有効になります。フル機能のnet462と制限機能netcoreapp
関連する問題