2024年1月15日月曜日

C# .Netframework の Project に Extensions.Configuration を

.Netframework 4.8.1 で Microsoft.Extensions.Configuration を。
何を今更、ですけれど、
古い環境下で動くのか試しましたので、
其の記録を残して置きます。


コードを検索していた時の事です。
Microsoft.Extensions.Configuration を使って INI ファイルの設定を読み込む と言うのがありました。
基本的には、新しい テクニック の様で、
.NET Core を対象とする解説が多いと思います。
では、.Netframework では 駄目 なのか?、と思ったのですが、
「 要求は .NET Standard 2.0 なので .NET Framework 4.6.1 や、.NET Core 2.0 でも動く筈 」、
と書かれていた方がいらっしゃったので、
トライ! です。

此方の環境は、
Visual Studio 2017 、
C# 、
Taget Framework : .Netframework v4.8.1 (拡張済み)、
です。
Solution : WakeOnLAN1 、
Prtoject : WakeOnLAN_CLI 、
に導入した例としてご覧下さい。

試行錯誤も含むので、余計なものが紛れ込んでいる可能性有ですが、
NuGet から、Microsoft.Extensions.Configuration を入れる事で対処しました。
恐らく、此の場合、
Install-Package Microsoft.Extensions.Configuration.Ini
Install-Package Microsoft.Extensions.Configuration.Binder
の ふたつ で良い筈です。
最初、
NuGet¥Install-Package Microsoft.Extensions.Configuration
のみ導入したのですが、
Code 記述が悪いのか、参照不足なのか、
上手く機能しませんでした。


以下、Nuget の Console Output です。
因みに、C# の Code 其のもの は 参考にしたもの 其のものズバリ です。


Microsoft.Extensions.Configuration
----------------------------------

パッケージ マネージャー コンソール ホストのバージョン 4.9.3.5777

利用可能なすべての NuGet コマンドを参照するには、'get-help NuGet' を入力します。

PM> NuGet¥Install-Package Microsoft.Extensions.Configuration -Version 8.0.0


'.NETFramework,Version=v4.8.1' を対象とするプロジェクト 'WakeOnLAN_CLI' に関して、パッケージ 'Microsoft.Extensions.Configuration.8.0.0' の依存関係情報の収集を試行しています
依存関係情報の収集に 36.06 sec かかりました
DependencyBehavior 'Lowest' でパッケージ 'Microsoft.Extensions.Configuration.8.0.0' の依存関係の解決を試行しています
依存関係情報の解決に 0 ms かかりました
パッケージ 'Microsoft.Extensions.Configuration.8.0.0' をインストールするアクションを解決しています
パッケージ 'Microsoft.Extensions.Configuration.8.0.0' をインストールするアクションが解決されました
'nuget.org' からパッケージ 'Microsoft.Extensions.Configuration 8.0.0' を取得しています。
'nuget.org' からパッケージ 'Microsoft.Extensions.Configuration.Abstractions 8.0.0' を取得しています。
'nuget.org' からパッケージ 'Microsoft.Extensions.Primitives 8.0.0' を取得しています。
'nuget.org' からパッケージ 'System.Buffers 4.5.1' を取得しています。
'nuget.org' からパッケージ 'System.Memory 4.5.5' を取得しています。
'nuget.org' からパッケージ 'System.Numerics.Vectors 4.5.0' を取得しています。
'nuget.org' からパッケージ 'System.Runtime.CompilerServices.Unsafe 6.0.0' を取得しています。
'nuget.org' からパッケージ 'System.ValueTuple 4.5.0' を取得しています。
  GET https://api.nuget.org/v3-flatcontainer/system.memory/4.5.5/system.memory.4.5.5.nupkg
  GET https://api.nuget.org/v3-flatcontainer/system.valuetuple/4.5.0/system.valuetuple.4.5.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration/8.0.0/microsoft.extensions.configuration.8.0.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/system.buffers/4.5.1/system.buffers.4.5.1.nupkg
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.primitives/8.0.0/microsoft.extensions.primitives.8.0.0.nupkg
  OK https://api.nuget.org/v3-flatcontainer/system.memory/4.5.5/system.memory.4.5.5.nupkg 46 ミリ秒
  GET https://api.nuget.org/v3-flatcontainer/system.numerics.vectors/4.5.0/system.numerics.vectors.4.5.0.nupkg
  OK https://api.nuget.org/v3-flatcontainer/system.valuetuple/4.5.0/system.valuetuple.4.5.0.nupkg 58 ミリ秒
System.Memory 4.5.5 をインストールしています。
System.ValueTuple 4.5.0 をインストールしています。
  GET https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.abstractions/8.0.0/microsoft.extensions.configuration.abstractions.8.0.0.nupkg
  OK https://api.nuget.org/v3-flatcontainer/system.buffers/4.5.1/system.buffers.4.5.1.nupkg 259 ミリ秒
System.Buffers 4.5.1 をインストールしています。
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration/8.0.0/microsoft.extensions.configuration.8.0.0.nupkg 310 ミリ秒
Microsoft.Extensions.Configuration 8.0.0 をインストールしています。
  OK https://api.nuget.org/v3-flatcontainer/system.numerics.vectors/4.5.0/system.numerics.vectors.4.5.0.nupkg 310 ミリ秒
System.Numerics.Vectors 4.5.0 をインストールしています。
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.primitives/8.0.0/microsoft.extensions.primitives.8.0.0.nupkg 419 ミリ秒
Microsoft.Extensions.Primitives 8.0.0 をインストールしています。
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.abstractions/8.0.0/microsoft.extensions.configuration.abstractions.8.0.0.nupkg 541 ミリ秒
Microsoft.Extensions.Configuration.Abstractions 8.0.0 をインストールしています。
  OK https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg 666 ミリ秒
System.Runtime.CompilerServices.Unsafe 6.0.0 をインストールしています。
パッケージ 'System.Buffers.4.5.1' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'System.Buffers.4.5.1' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'System.Buffers.4.5.1' を 'packages.config' に追加しました
'System.Buffers 4.5.1' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'System.Numerics.Vectors.4.5.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'System.Numerics.Vectors.4.5.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'System.Numerics.Vectors.4.5.0' を 'packages.config' に追加しました
'System.Numerics.Vectors 4.5.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'System.Runtime.CompilerServices.Unsafe.6.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'System.Runtime.CompilerServices.Unsafe.6.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'System.Runtime.CompilerServices.Unsafe.6.0.0' を 'packages.config' に追加しました
'System.Runtime.CompilerServices.Unsafe 6.0.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'System.Memory.4.5.5' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'System.Memory.4.5.5' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'System.Memory.4.5.5' を 'packages.config' に追加しました
'System.Memory 4.5.5' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'Microsoft.Extensions.Primitives.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'Microsoft.Extensions.Primitives.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.Primitives.8.0.0' を 'packages.config' に追加しました
'Microsoft.Extensions.Primitives 8.0.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'System.ValueTuple.4.5.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'System.ValueTuple.4.5.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'System.ValueTuple.4.5.0' を 'packages.config' に追加しました
'System.ValueTuple 4.5.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'Microsoft.Extensions.Configuration.Abstractions.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'Microsoft.Extensions.Configuration.Abstractions.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.Configuration.Abstractions.8.0.0' を 'packages.config' に追加しました
'Microsoft.Extensions.Configuration.Abstractions 8.0.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'Microsoft.Extensions.Configuration.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'Microsoft.Extensions.Configuration.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.Configuration.8.0.0' を 'packages.config' に追加しました
'Microsoft.Extensions.Configuration 8.0.0' が WakeOnLAN_CLI に正常にインストールされました
NuGet の操作の実行に 3.33 sec かかりました
経過した時間: 00:00:39.5337345
PM>
PM>
PM> Install-Package Microsoft.Extensions.Configuration.Ini


'.NETFramework,Version=v4.8.1' を対象とするプロジェクト 'WakeOnLAN_CLI' に関して、パッケージ 'Microsoft.Extensions.Configuration.Ini.8.0.0' の依存関係情報の収集を試行しています
依存関係情報の収集に 2.86 sec かかりました
DependencyBehavior 'Lowest' でパッケージ 'Microsoft.Extensions.Configuration.Ini.8.0.0' の依存関係の解決を試行しています
依存関係情報の解決に 0 ms かかりました
パッケージ 'Microsoft.Extensions.Configuration.Ini.8.0.0' をインストールするアクションを解決しています
パッケージ 'Microsoft.Extensions.Configuration.Ini.8.0.0' をインストールするアクションが解決されました
'nuget.org' からパッケージ 'Microsoft.Extensions.Configuration.FileExtensions 8.0.0' を取得しています。
'nuget.org' からパッケージ 'Microsoft.Extensions.Configuration.Ini 8.0.0' を取得しています。
'nuget.org' からパッケージ 'Microsoft.Extensions.FileProviders.Abstractions 8.0.0' を取得しています。
'nuget.org' からパッケージ 'Microsoft.Extensions.FileProviders.Physical 8.0.0' を取得しています。
'nuget.org' からパッケージ 'Microsoft.Extensions.FileSystemGlobbing 8.0.0' を取得しています。
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.filesystemglobbing/8.0.0/microsoft.extensions.filesystemglobbing.8.0.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.abstractions/8.0.0/microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.physical/8.0.0/microsoft.extensions.fileproviders.physical.8.0.0.nupkg
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.filesystemglobbing/8.0.0/microsoft.extensions.filesystemglobbing.8.0.0.nupkg 42 ミリ秒
Microsoft.Extensions.FileSystemGlobbing 8.0.0 をインストールしています。
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.ini/8.0.0/microsoft.extensions.configuration.ini.8.0.0.nupkg
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.abstractions/8.0.0/microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg 38 ミリ秒
Microsoft.Extensions.FileProviders.Abstractions 8.0.0 をインストールしています。
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.fileextensions/8.0.0/microsoft.extensions.configuration.fileextensions.8.0.0.nupkg
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.physical/8.0.0/microsoft.extensions.fileproviders.physical.8.0.0.nupkg 141 ミリ秒
Microsoft.Extensions.FileProviders.Physical 8.0.0 をインストールしています。
パッケージ 'Microsoft.Extensions.FileSystemGlobbing.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.fileextensions/8.0.0/microsoft.extensions.configuration.fileextensions.8.0.0.nupkg 207 ミリ秒
Microsoft.Extensions.Configuration.FileExtensions 8.0.0 をインストールしています。
パッケージ 'Microsoft.Extensions.FileSystemGlobbing.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.FileSystemGlobbing.8.0.0' を 'packages.config' に追加しました
'Microsoft.Extensions.FileSystemGlobbing 8.0.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'Microsoft.Extensions.FileProviders.Abstractions.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'Microsoft.Extensions.FileProviders.Abstractions.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.FileProviders.Abstractions.8.0.0' を 'packages.config' に追加しました
'Microsoft.Extensions.FileProviders.Abstractions 8.0.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'Microsoft.Extensions.FileProviders.Physical.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'Microsoft.Extensions.FileProviders.Physical.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.FileProviders.Physical.8.0.0' を 'packages.config' に追加しました
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.ini/8.0.0/microsoft.extensions.configuration.ini.8.0.0.nupkg 795 ミリ秒
Microsoft.Extensions.Configuration.Ini 8.0.0 をインストールしています。
'Microsoft.Extensions.FileProviders.Physical 8.0.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'Microsoft.Extensions.Configuration.FileExtensions.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'Microsoft.Extensions.Configuration.FileExtensions.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.Configuration.FileExtensions.8.0.0' を 'packages.config' に追加しました
'Microsoft.Extensions.Configuration.FileExtensions 8.0.0' が WakeOnLAN_CLI に正常にインストールされました
パッケージ 'Microsoft.Extensions.Configuration.Ini.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'Microsoft.Extensions.Configuration.Ini.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.Configuration.Ini.8.0.0' を 'packages.config' に追加しました
'Microsoft.Extensions.Configuration.Ini 8.0.0' が WakeOnLAN_CLI に正常にインストールされました
NuGet の操作の実行に 1.34 sec かかりました
経過した時間: 00:00:05.5784972
PM>
PM> Install-Package Microsoft.Extensions.Configuration.Binder


'.NETFramework,Version=v4.8.1' を対象とするプロジェクト 'WakeOnLAN_CLI' に関して、パッケージ 'Microsoft.Extensions.Configuration.Binder.8.0.0' の依存関係情報の収集を試行しています
依存関係情報の収集に 132.2 ms かかりました
DependencyBehavior 'Lowest' でパッケージ 'Microsoft.Extensions.Configuration.Binder.8.0.0' の依存関係の解決を試行しています
依存関係情報の解決に 0 ms かかりました
パッケージ 'Microsoft.Extensions.Configuration.Binder.8.0.0' をインストールするアクションを解決しています
パッケージ 'Microsoft.Extensions.Configuration.Binder.8.0.0' をインストールするアクションが解決されました
'nuget.org' からパッケージ 'Microsoft.Extensions.Configuration.Binder 8.0.0' を取得しています。
  GET https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.binder/8.0.0/microsoft.extensions.configuration.binder.8.0.0.nupkg
  OK https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.binder/8.0.0/microsoft.extensions.configuration.binder.8.0.0.nupkg 59 ミリ秒
Microsoft.Extensions.Configuration.Binder 8.0.0 をインストールしています。
パッケージ 'Microsoft.Extensions.Configuration.Binder.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しています
パッケージ 'Microsoft.Extensions.Configuration.Binder.8.0.0' をフォルダー 'C:¥Users¥UserA¥Documents¥Visual Studio 2017¥Projects¥WakeOnLAN1¥packages' に追加しました
パッケージ 'Microsoft.Extensions.Configuration.Binder.8.0.0' を 'packages.config' に追加しました
'Microsoft.Extensions.Configuration.Binder 8.0.0' が WakeOnLAN_CLI に正常 に正常にインストールされました


ほぉ、こんな事も出来るのか!、 と感心した次第。

尚、記述した Code 其のもの は省略します。
他人さまの書かれた Code を流用ですから、
流石に、掲載するのは 気が引けますから、ね。

そうそう、 .Net Core 用の 記述 其のまま です。



0 件のコメント:

コメントを投稿