と2.0の互換性はありません、私は次のことを含むsolcutionを作成しました:ネットコアアプリケーションは、Visual Studio 2017で、.NETの標準2.0ライブラリ
- ASP.NetコアWebアプリケーションプロジェクト(ASP.Net MVC) に
- .Net標準ライブラリとして作成された2つのクラスライブラリプロジェクト
デフォルトでは、これらのクラスライブラリを対象としています.Net Standard 2.0、Webアプリケーションは.Net Core 1.1をターゲットにしています。
追加されたプロジェクトの依存性 - Webアプリケーションは、プロジェクトの依存関係として2つのクラスライブラリの両方を持っています(コア機能が含まれているため、Webアプリケーションはフロントエンドに過ぎません)。
理論的には、VSが適切なデフォルトを選択しているはずです。しかし、それはコンパイルされません。私はこのようなエラーを取得しています:
Error CS1705
Assembly 'Entities' with identity 'Entities, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null' uses 'System.Runtime, Version=4.1.2.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version
than referenced assembly 'System.Runtime' with identity 'System.Runtime,
Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
私はSystem.Runtimeへの参照を変更する方法を知って、そしてそうするためのVSにはオプションが見つからないはありません。
オーケー - ネットコア本当に2.0(.NETのコア1.1でも公式ネット規格概要グラフィックに表示されていないにもかかわらず、official MS Github documentationを参照してくださいので、私はどのように私たちすることができます。ネット規格で意味を行うべきではありません1.1 確かに?)。
これを変更して、Webアプリケーションのターゲットを.Net Core 2.0に変更して、すべてのものが2.0の目標を達成するようにしましょう。 .NET Core 2.0へのフレームワーク、および再構築ソリューション (私のVSインスタンスはデフォルトではすべての再構築時にNugetパッケージを復元するように設定されています)
もう一度動作しません。異なるエラーこの時間 - ここでは、その種のいくつかのエラー:.NETのコアツールの以前のバージョン(VS 2015)では
Error NU1605 Detected package downgrade: System.Net.Primitives from 4.3.0
to 4.0.11. Reference the package directly from the project to select a
different version.
UI.Web (>= 1.0.0) -> Microsoft.VisualStudio.Web.BrowserLink (>= 1.1.2) ->
Microsoft.AspNetCore.Hosting.Abstractions (>= 1.1.2) -> NETStandard.Library
(>= 1.6.1) -> System.Net.Primitives (>= 4.3.0)
UI.Web (>= 1.0.0) -> Microsoft.VisualStudio.Web.BrowserLink (>= 1.1.2) ->
System.Net.Primitives (>= 4.0.11) UI.Web C:\Source\Projects\Test
\UI.Web\UI.Web.csproj
は、依存関係のバージョンの微調整を可能に多くのJSONファイルが存在しなかったが、これはもはやに適用されますVS 2017 - csprojは唯一のものであり、XML形式であり、上記のエラーのパッケージのいずれも参照していません。
これはどういう意味ですか? .Net Core 2.0は.Net Standard 2.0ライブラリと互換性がありません。
面白いことに、この種のアプリを初めて製作したばかりで、ほんの数か月前にはすぐに使えました。私は
- の.NET標準ライブラリがネット標準であることを見つける正常に動作し、古いアプリに見ると1.6
- ASP.NetコアWebアプリケーションは、.NETのコアに1.1
変更されましたそれは私の新しいプロジェクトで - それはうまくいっています。
しかし、これはまだ、これらの問題を提起:
- は、.NETのコア2.0は、.NET標準2.0のライブラリと互換性がありませんか?
- これはVS 2017の問題で、.Net Core と.Net Standardライブラリのデフォルトのフレームワークは、あたかもdovetailではないか、何かですか? 私は/ configureを設定できますか?
それぞれの.NET Coreおよび.NET Standardアプリケーションは、UbuntuまたはMacOSのいずれかでCLIツールを使用して構築されていますが、この問題は発生していません(初期パブリックプレビューから各ビルドを使用しました2.0.0のRTMまで)。おそらくそれはVS 2017の問題です.Core 2.0はStandard 2.0に完全に準拠しているので、そうは思いません。どのバージョンのVS 2017を使用していますか? –
私はVS2017コミュニティ、バージョン15.3.0を使用しています。この問題をテストするためのテストプロジェクトをいくつか作成しました。毎回発生します。 – nepdev
うーん...それはかなり奇妙です。 AzureのホストされたVMをスピンアップして再作成しようとするかもしれません。その間、私はあなたのVSインスタンスを更新しようとする価値があるのだろうかと思います。コントロールパネルのプログラムの追加と削除に進み、VSを見つけて変更を選択して、インストーラが更新してからインストールを更新できるようにします。 –