1. ホーム
  2. c#

新しいnetstandardappとnetcoreappのTFMの違いは何ですか?

2023-08-19 01:43:20

質問

最近、NuGet が .NET Core に関連するいくつかの新しい TFM のサポートを追加していることに気づきました。

  • netstandard (1.0-1.5)
  • netstandardapp (1.5)
  • netcoreapp (1.0)

私の知る限りでは netstandard は .NET Core におけるポータブル プロファイルに相当します。 portable-net45+netcore45+wp81 .

一方、曰く この文書 netstandardapp は、.NET Coreのコンソールアプリケーションに近いもので、任意の.NET Coreランタイム(CoreCLR、CoreRTなど)が持つものを表します。

では、正確には netcoreapp はどうなっているのでしょうか?それに対するトラッキング・イシューを見つけました。 はここにあります。 の違いは何なのでしょうか?

NETStandard.Library+アプリホスト

.NET Coreのベースインストール

です。どなたか解説していただけませんか?

どのように解決するのですか?

.NET標準ライブラリ( ネットスタンダード ) は、アプリケーションモデル間で一貫したライブラリです。.NET コア ( netcoreapp ) は、.NET Standard Library の上で動作し、AppModel となります。GitHub のページでは、.NET Standard アプリケーションとは何か、.NET Core ( netcoreapp ) との違いは何かについて回答されています。 https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-standard-applications.md ) と ( https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md )

UPDATEです。 .NETStandardappは廃止されました。NETCoreアプリがそれに取って代わります ( https://github.com/NuGet/Home/issues/2524 )

Q: .NET Standardアプリケーションとは何ですか?

A: .NET Standardアプリケーションは、任意の.NET Coreランタイム上で実行できるアプリケーションです。CoreCLR (現在) と .NETNative (将来) のいずれかの .NET Core ランタイムで実行できるアプリケーションです。多くの.NETコアプラットフォーム(Windows、OS X、Linux)のうちの1つで実行することができます。与えられたランタイムが提供するホストに依存する。アプリケーションが依存するパッケージから構築されるコンポーザブルフレームワークです。そのアセンブリ ローディング ポリシーは、アプリケーションの設定なしに依存関係の新しいバージョンを許可します (たとえば、BindingRedirects は必要ありません)。

Q: これは .NETCore とどのように違うのですか? A: .NETCore ターゲット フレームワークは、Windows 8、Windows 8.1、およびユニバーサル Windows プラットフォーム アプリケーションを表します。 プラットフォーム アプリケーションを表します。互換性のため、この名称は .NET Coreアプリケーション」に再利用することはできません。ブランド名の重複は 残念なことです。

Q: これは.NETStandardとどう違うのですか?

A: NETStandardターゲットフレームワークは、多くのフレームワークとプラットフォームのAPI表面を表す抽象的なターゲットフレームワークです。そのため、NETStandard アセンブリは、そのアセンブリがターゲットとする NETStandard をサポートする任意のプラットフォーム、たとえば .NET Desktop、Windows Phone、Universal Windows Platform アプリケーション、.NET Standard アプリケーションなどで実行することが可能です。.NETStandardApplication は、API サーフェスと実装の両方で 1 つのプラットフォームを表す具体的なターゲット フレームワークです。.NET標準アプリケーションは、それ自体で実行可能です。.NETStandard ライブラリは、そのタイプのアプリケーションで使用するために、特定の具体的なターゲット フレームワークによって発行または消費される必要があります。