さまざまなブログを読んで、「マルチターゲティング」またはサイドバイサイド実行の用語についてかなり混乱しています。
一部のブログでは、並列実行とは、プロセス内の2つのバージョンのCLRを意味すると述べています。他の何人かは、.net2.0と.net3.0のアセンブリが並行して実行されていると主張しています。誰が正しいのか、誰が間違っているのかわからないことに非常に失望しています。
また、Scott Hanselmanのブログなど(多くの混乱を招きます)のような多くのブログで、ターゲットフレームワークが4.0の場合、.NET4.5のどの機能も機能しないことを確認しました。私はそれに同意することができます。しかし、4.5でバグが修正された4.0の機能が、4.5を使用してビルドし、4.0でデプロイすると非表示になるという事実に同意したり、理解したりすることはできません。ここで私は「隠された」という用語を理解しておらず、実際にそれが何を意味するのかを誰もあえて説明しません。ランタイムエラーを意味しますか?コンパイル時エラーを意味しますか?これはできません。それは一貫性のない行動を意味しますか?例外 ?そうだとすれば、なぜMSがVSでの開発にこの種の柔軟性を持たせたのだろうか。それは何か目的を果たしますか?私は、最初のケースは意味があることを理解していますが、2番目のケースを理解したり同意したりしないでください。
Rick / Scott Hanselmanの投稿でも、大きな変更とは、CLRを含む完全なアップグレードを意味することを確認しました。次に、3.0をメジャーアップグレードと見なす必要がありますが、まだ.NET2.0CLRを使用しているためそうではありません。では、なぜ命名用語が3.0.xx / 3.5.xxなのですか?.NET 4.0.30319.xの場合のように、CLRも新しいので、私はこれに同意します。誰が正しいのか驚いています。これらの人々またはMSDNは、どちらも原則と矛盾しています(MSDNがMajor.Minor.Build.Revisionとしてフォーマットを言うように、Hanselmanまたは他の人が言うように、MajorはCLRアップグレードを意味し、.NET 3.0にはありません)
参照:http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx
http://msdn.microsoft.com/en-us/library/bb822049(v=vs.110).aspx
上記の2つの質問について何か考えはありますか?