2017-02-25 18 views
4

TL; DRバージョン

私はproject.jsonフレームワークnetstandard1.6 + dnxcore50をターゲットlibに.NETのコアを構築しています。私のバイナリは、名前が一致するフォルダに組み込まれています。 MSDN's Nuget naming conventionはが「非推奨」のフレームワークなので、私のフォルダの名前をnetcore50に変更する必要がありますか、別のフレームワーク全体を対象にすべきですか?.NET CoreプロジェクトをNugetに公開する - 使用するフレームワークのバージョンは?

私はVS 2015コミュニティとDotNetCore.1.0.1 SDKを使用しています。

ロングバージョン

私はFluentFTPと呼ばれるFTPライブラリを維持します。 VS 2015コミュニティを使用して.NETコアのバージョンを正常にコンパイルしました。私が使用してどのような形式を知らなかったので、私は別のプロジェクトのframeworksセクションをコピーし

{ 
    "dependencies": { 
    "NETStandard.Library": "1.6.0", 
    "System.IO": "4.3.0.0", 
    "System.Net.NameResolution": "4.3.0.0", 
    "System.Net.Sockets": "4.3.0.0", 
    "System.Net.Security": "4.3.0.0" 
    }, 
    "frameworks": { 
    "netstandard1.6": { 
     "imports": "dnxcore50" 
    }, 
    "dnxcore50": { 
    } 
    } 
} 

:私のproject.jsonはこのようになります。ご覧のとおり、私は.NET Core 5.0(明らかに)と.NET Standard 1.6をターゲットにしています。私は正常にビルドすることができるので、私は.NET Standard 1.6と.NET Core 5.0バージョンを構築していると仮定しています。

  • net40
  • nugetするマルチフレームワークのlibを公開するために

    • dnxcore50
    • netstandard1.6
    • net20:私はビルドすると、私のようなディレクトリ構造を取得しますMSDNには、ある特定の手順に従う必要があると言われていますnaming convention

      悲しいことにdnxcore50は、naming conventionの記事で「非推奨フレームワーク」とマークされています。それは次のことを意味します:

      1. 私は間違った/古いタイプのフレームワークのために建てていますか?

      2. dnxcore50の名前をnetcore50に変更して公開するだけでいいですか?

    答えて

    0

    だけdnxcore50という名前のフォルダでそれを公開します。少し古い名前付け規則ですが、libはまだVS 2015で作成された.NETコアプロジェクトにインストール可能です。私はそれをテストして動作します。独立して、それを確認するには、編集

    VS 2015で「このプロジェクトのためにNugetパッケージの管理」ダイアログで、.NETのコアプロジェクトでFluentFTPをインストールしてみてください:VS 2017の場合はsolution in this answerを参照してください。あなたが実際の使用を作るもの要求すべきである。一般に

    +0

    それは、.NETのコアのための新しいプロジェクトシステムを使用してVS2017で動作しますか? – svick

    +0

    @svick - これを見てください:http://stackoverflow.com/questions/42856619/the-reference-assemblies-for-framework-dnxcore-version-v5-0-were-not-found/42856620#42856620 –

    0

    Aが、これはそれが問題に関連した答えを考えることができるように私は感じるものの、私の意見(実際には哲学の問題)に他ならない怖いですそれ以上はありません。これは、フレームワークの最も古いバージョンと、その機能を使用する言語を意味します。新しいバージョンと完全に互換性があります(理想的には、新しいフレームワークのすべてのバージョンでこのコードを定期的にテストしてください)。それがまだサポートされていない場合でも(あなたや他の人々があなたのターゲットオーディエンスに残っているため)、異なるプラットフォーム用の別々のバージョンを構築することを検討する必要があります。コードの一部のパラレルバージョンを維持することを意味します。

    古いフレームワークや言語をサポートするために使用する機能を意図的に制限する必要はありません(これは、主観的で主観的な別の問題です)。私はちょうどWindows XPマシン上のC#3.0でプロジェクト全体をコーディングした後、彼がWindows 10とVisual Studio 2017で新しい光沢のあるラップトップを購入し、.NET Framework 4.6.2このフレームワークで追加された新しい機能がひとつもわからないにもかかわらず、彼ができるからです。 正確にあなたの場合、私の知る限りを理解して - 私は上記の哲学から、合理的な例外を検討する何

    は、フレームワークのプレリリース(アルファ、ベータ、CTP、RCなど)のバージョンです。リリースが公開されるとすぐに、開発者はできるだけ早くそれに切り替える方がよいでしょう。

    しかし、その理由と例外が出てくるから、実用的な(あるいは少し高い)(より効率的な意思決定のために)論理的形式主義の度合い例外に到達するための試みと一緒に来る柔軟性が、この場合にはこれらがどこにいても:

    1. まだ広く使用されているものについては、サポートを中止する前に2回考えてください。現実の世界では、古い/プレリリースバージョンが新バージョン/リリースバージョンよりもはるかに広く採用され、アップグレードプロセスに客観的に悩まされるバージョン間に大きな変化が生じる場合があります。 これはあなたのケースでも起こるかもしれません、私は実際にどのくらい深刻な(どのくらいの作業が既存のコードをアップグレードする必要があるのか​​分かりません)この場合の変更は、どれだけ多くの人が古いフレームワークバージョンを現在使っていますかライブラリの新しいバージョンで導入した変更がどれほど重要か(例えば、重大なバグ修正や実際に大いに活用されている新しい機能が含まれている場合、新しいフレームワークへの移行を容易にする場合など)。

    2. これは、あなたが望む新しいフレームワーク/言語機能や他のリソースを使用するなど、かなりの時間、努力、自由を取らなければ、少なくとも一部の人々はそれを使い続けることを選ぶ。あなたは、エンド・オブ・サポート通知書の残りのユーザーを送って親切かつ/またはあなたのブログで公開できることを支援楽しむために失敗し始めるようにあなたが感じた場合など

    関連する問題