いくつかのプロジェクトを含むソリューションがあります。テストプロジェクトの1つは、依存関係のために.NET4.0を使用しています。ビルドしたいデプロイ可能なプロジェクトは、.NET3.5コンパイラを対象としています。現在のビルドスクリプトは、プロジェクトごとにさまざまな.NETコンパイラをターゲットにするほどきめ細かいものではありません。基本的に、ソリューション内のプロジェクトごとに1つのコンパイラしか使用できません。
.NET 4.0コンパイラは3.5コードをコンパイルするのに十分賢いですか?
ソリューションの構造
- Project 1 .NET 3.5(デプロイ可能)
- Project 2 .NET 4.0(自動ビルドサイクルでのテストに使用)
注:自動ビルドサーバーはプロジェクト2で単体テストを実行するため、プロジェクト2を無視することはできません。ビルドが成功する前に、すべてのテストに合格する必要があります。
編集:
VisualStudio内でこのコードをコンパイルしていません。VisualStudioの外部で実行されるカスタムビルドスクリプトがあります。1つの.NETコンパイラを使用するのに十分賢いだけです。このコンパイラを使用して、特定のソリューションのすべてのプロジェクトをコンパイルします。ビルドスクリプトは、プロジェクトが3.5または4.0に対してコンパイルされるように定義されているかどうかを気にしません。代わりに、定義されたコンパイラでそれらをコンパイルします。
プロジェクト1はプロジェクト2を参照していません。プロジェクト2は、単体テストを含むプロジェクトです。自動ビルドツールは、テストを実行するためにのみプロジェクト2をコンパイルします。