web-dev-qa-db-ja.com

VS2017のタプル構文

VS2017 RCで、新しいタプル構文を使用しようとすると、次のエラーが発生しました。

CS8179事前定義されたタイプ 'System.ValueTuple`X'が定義またはインポートされていません

タプル構文を使用するには、ValueTuplenugetパッケージをプロジェクトに手動でインポートする必要がありました。プレリリースバージョンであり、RTMで変更されると思っていたので、大したことではありません。デフォルトで有効になります。残念ながら、最終リリースバージョンでは、まだそうです。タプル構文を使用するには、プロジェクトごとにnugetパッケージをダウンロードする必要があります。

すべてのプロジェクトでタプル構文をデフォルトで有効にする方法はありますか?

25
user3126358

https://github.com/dotnet/roslyn/issues/13177 によると、ITupleおよびValueTupleタイプは「最初のバージョン」でmscorlibに追加されます。後」.NETFramework4.7。。NET Framework 4.7リリースノート によると、追加されました。 4.6.xに追加すると、semverが壊れます。そのため、古いフレームワークバージョンに基づくプロジェクトで使用できるように、タイプをNugetパッケージとして提供しました。

これは、拡張メソッドがmscorlibではなくSystem.Coreに存在するLINQを使用したい.NET2.0プロジェクトに似ています。

実行できるオプションの1つは、NuGetパッケージを参照する独自のプロジェクトテンプレートを暫定的に作成することです。

25
Daniel A. White