NetStandard2.0でアセンブリを作成しました。 System.Configuration.ConfigurationManagerを使用してAppSettingsを読み取ります。私はのSystem.Configuration.ConfigurationManagerのバージョン4.4.XのNugetパッケージをインストールしました。これはのNetStandard2.0に適しています。.NET FX2.6ライブラリのSystem.Configuration.Configuration Managerを.NET FX4.6上で使用できません
コンソールアプリケーション(.Net Core)でこのアセンブリを参照すると、正しくAppSettingsが読み込まれますが、古い.NetFramework(4.6.X)コンソールアプリケーションでこのアセンブリを参照すると、動作しなくなり例外がスローされます。
下記のコードをご覧ください。
アセンブリ1:NetStandard 2.0
Nuget:System.Configuration.ConfigurationManager 4.4.0
using System.Configuration;
namespace Bootstrapper.Lib
{
public class Bootstrapper
{
public Bootstrapper()
{
}
public void LoadAppSettings()
{
string serachPattern=
ConfigurationManager.AppSettings["AssemblySearchPattern"];
}
}
}
コンソールアプリケーション:NetFx 4.6.xの
using System;
using Bootstrapper.Lib;
namespace Bootstrapper.Console
{
class Program
{
static void Main(string[] args)
{
new Bootstrapper().LoadAppSettings();
}
}
}
Exce実行した後ption:
'Could not load file or assembly 'System.Configuration.ConfigurationManager,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one
of its dependencies. The system cannot find the file specified.'
これは、コンソールアプリケーションは.NetCoreを使用して開発していきます。
助けてください!
マイクロソフトでは、「.NETコア用Windows互換性パック」を発表しました。それには、とりわけ、 'System.Configuration.ConfigurationManager'が含まれています(しかし、あなたの.NETコアアプリケーションは" Windowsのみ "となります)。すでに利用可能かどうかは分かりません。単に引用符で囲まれた用語のためのGoogleを見つけ、あなたが見つけることができるものを見てください。 –
https://github.com/dotnet/announcements/issues/31に記載されている自動バインディングリダイレクトの生成を有効にしましたか? –
@MartinUllrichはい、私は今日試しましたが、同じ例外が発生しました。 – kiran