LoginSignup
10
10

More than 5 years have passed since last update.

C#で複数の対象フレームワーク(.NET Standard、.NET Framework など)に対応したライブラリを作成するメモ

Last updated at Posted at 2018-06-24

はじめに

今回は、.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に変更しています。

変更前

(プロジェクト名).csproj
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

</Project>

変更後

(プロジェクト名).csproj
<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への参照の追加を行えます。

おわりに

これを機に、複数の対象フレームワークに対応したライブラリを作成してみましょう!

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10