標準のasp.netアプリ(4.0フレームワーク)とシェアポイントソリューション(3.5フレームワーク)で使用されるプロジェクト(ログライブラリ)があります。
プロジェクトをビルドするときに両方のバージョンがビルドされるように、両方のターゲットを定義する方法はありますか?
また、誰かがこのようなものを実装し、ナゲット経由で配布していますか? nuget で両方のバージョンを公開する最善の方法は何ですか?
ありがとう
答えは<supportedRuntime>
構成要素です。これにより、アプリケーションがサポートおよび実行できるすべての .NET ランタイムを指定できます。もちろん、アプリケーションでは、選択したすべてのバージョンの .NET フレームワークが提供する機能のみを使用できます。
要するに、これを構成に含める必要があります。
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
<supportedRuntime>
バージョンを下げるのではなく上げることができるように、最初はアプリケーションのターゲットを .NET 3.5 にする必要があるかもしれません。
2 つの C# プロジェクト (csproj ファイル) を作成して、同じソース ファイル (構造によっては複数のプロジェクト) を含めることができます。1 つのプロジェクトは .NET 3.5 をターゲットとし、もう 1 つのプロジェクトは .NET 4.0 をターゲットにする必要があります。
.NET 4.0 に固有の機能を使用する場合は、.NET 4 プロジェクトで定義された条件付きコンパイル シンボルを使用して実行できます。
オプションで、それぞれが C# プロジェクトの 1 つを使用して、1 つ以上のソリューション (VS2008 および VS2010 用) を追加することもできます。