はじめに
今回は、.NET Standard 2.0
と.NET Framework 4.5
の両方に対応したライブラリを作成します。確認はしていませんが、その他の構成でも同じ方法でいけそうです。(要検証)
説明が分かりにくいなどあるかと思いますが、ご容赦ください。
より詳しい情報は以下を参照してください。
https://docs.microsoft.com/ja-jp/dotnet/standard/frameworks
実はこれによって、複数フレームワークに対応したNuGetのパッケージの生成もVS上から可能です。
1.プロジェクト作成
一旦Visual Studio上でプロジェクトを作成します。プロジェクトの種類はクラスライブラリ(.NET Standard)で作成します。
2.プロジェクトファイルの編集
生成された(プロジェクト名).csprojファイルをコードエディタで開き、以下のように変更します。
ちなみに、TargetFramework要素の名前をTargetFrameworksに変更しています。
変更前
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
変更後
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
</PropertyGroup>
</Project>
その他
対象フレームワークを限定して参照を追加する
プロジェクトファイルの<ItemGroup>
や<PropertyGroup>
要素にCondition
属性を設定することによって、特定のビルド構成や対象フレームワークへ適用するかどうかをカスタマイズすることができます。
これがとても便利。
例えば、<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
とすれば、.NET Framework 4.5
だけを対象にして、パッケージやDLLへの参照の追加を行えます。
おわりに
これを機に、複数の対象フレームワークに対応したライブラリを作成してみましょう!