2016-08-23 7 views
0

私はドットネットフレームワークv4.0上に構築されたドットネットライブラリ(dll)を持っています。 ここでは、そのDLLを.Net Core framework 1.0に使用します。.Net v4.0で構築されたDllを.NET Core 1.0に移植

v4.0のような以前のバージョンのdotnetフレームワークを使用してビルドされた古いライブラリを.Net Core 1.0で直接使用することは可能ですか?

「はい」の場合は、どうすればいいですか? いいえの場合は、.Net Core 1.0でサポートするために何をする必要がありますか。

私はさまざまなmsdnブログを見てきましたが、コンソールアプリケーションのためのあらゆる解決策を見つけることができました。彼らはASP.Netコアについてはたくさん持っていましたが、.Net Core Appに関してはあまりありませんでした。

+0

この質問は広範囲にわかります。 VS 2015にhttps://visualstudiogallery.msdn.microsoft.com/1177943e-cfb7-4822-a8a6-e56c7905292bをインストールして4.0ライブラリで実行し、互換性のないアプリケーションと変更/削除/置き換えを確認してください。コア互換のAPI呼び出しは、これが本当に助けた@Tseng – Tseng

+0

を呼び出します。しかし、この拡張機能をインストールすると、ターゲットプラットフォームのリストに.Net Coreが表示されず、代わりにASP.Netコアが表示されます。 – User1234

答えて

1

コア1.0が移植可能です。

まず、DLLを.NET Portability Analyserでテストする必要があります。

このツールは、使用している.NET Core 1.0でサポートされていないメソッド(およびそのクラスと名前空間)を非常に視覚的に示します。

実行可能性に応じて(コードはわかります)、このクラス/メソッドを取り除き、.NET Core 1.0互換コードで置き換えることを選択できます。 .NETコア1.0でサポートされない機能の

例:

  • リモーティング
  • バイナリシリアライゼーション(コード分離、動的アセンブリローディング用)

    • アプリケーションドメイン

    詳細on Core FX github documentation

    は、ポートあなたのdllを試みること:

    • はcsproj
    • を取り払う正しく.NETのコア1を対象とするように設定project.json(とそれを交換してください。0)
    • それをコンパイルするためのVisual Studio 2015
    • 試みでプロジェクトを開き、エラーを分析し、それらを
    • 反復(おそらく何回:))

    幸運を修正!

  • 1

    いいえ、.NETコアで.NET Frameworkアセンブリを直接使用する方法はありません。

    .NETコアでは利用できないAPIがたくさんあります(少なくとも今のところ)。たとえば、レジ​​ストリAPIはクロスプラットフォームには意味がありません。

    ソースコードを手動で移植して再構築する必要があります。あなたはポートソースコードこれをターゲットにする場合は、.NET Frameworkおよび.NETのコア上で実行することができるはずですので

    .NET standardと呼ばれるライブラリの新しいタイプは、あります

    それが直接.NETで使用することはできません
    関連する問題