[解決済み] ファイルまたはアセンブリをロードできませんでした Microsoft.Extensions.DependencyInjection.Abstractions, Version=1.1.0.0
質問
Microsoft.EntityFrameworkCore.SqlServer 1.1.2 にアップデートしたところ、DBContext を作成しようとするとエラーが発生しました。
System.IO.FileLoadExceptionが発生 HResult=0x80131040
Message=Could not load file or assembly 'Microsoft.Extensions.DependencyInjection.Abstractions.DependencyInjection.Abstractions'です。 Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' または その依存関係の1つ。配置されたアセンブリのマニフェスト定義 がアセンブリの参照と一致しない。(HRESULTからの例外です。 0x80131040) Source=Microsoft.EntityFrameworkCore StackTrace: at Microsoft.EntityFrameworkCore.DbContext..ctor(DbContextOptions オプション) at Services.Infrastructure.Data.SqlServerDbContext..ctor(DatabaseOptions databaseOptions) にあります。 C:\srcbackend﹑Services.Infrastructure﹑Data﹑SqlServerDbContext.cs:line 16 at Translations.Api.Data.TranslationsDbContext..ctor(DatabaseOptions databaseOptions) にある。 C:\src³³³³Modules³³Translations³³.Api³³Data³³TranslationsDbContext.cs:line 16
私のベースとなるDbContext
public class SqlServerDbContext : DbContext
{
private readonly DatabaseOptions _databaseOptions;
protected SqlServerDbContext(DatabaseOptions databaseOptions)
{
if (string.IsNullOrEmpty(databaseOptions.ConnectionString))
throw new Exception("Database connection string is missed.");
_databaseOptions = databaseOptions;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(_databaseOptions.ConnectionString);
}
}
私が使用しているデータベースオプション
public class DatabaseOptions
{
public string ConnectionString { get; set; }
}
コンテキストのインスタンスを作成する場所
var dbOptions = new DatabaseOptions { ConnectionString = _connectionString };
DbContext = (TContext) Activator.CreateInstance(typeof(TContext), dbOptions);
// where TContext is derived class from SqlServerDbContext
私のパッケージはすべてアップデートされています。 Visual Studio 2017 15.2 (26430.6)です。1.1.2にアップグレードする前に、すべてが正常に動作します。問題を解決するために助けてください。
解決方法は?
.net frameworkのライブラリでプロジェクトを使用しているため、自動生成されるバインディングリダイレクトに問題があります(今後の15.3アップデート/2.0 .net core CLIで解決される可能性があります)。この問題を回避するには、次のコードを
cpsroj
ファイル(できれば
<Import>
要素のための
.targets
ファイルが存在する場合)。
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
これは、MSBuildが強制的に
YourProject.dll.config
ファイルに必要なバインディングのリダイレクトが含まれています。
関連
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み] Could not find a part of the path ... binroslyncsc.exe
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] メタデータファイル'.dll'が見つかりません。
-
[解決済み] アセンブリファイルのバージョンを取得する方法
-
[解決済み] ファイルまたはアセンブリを読み込めませんでした ... 不正なフォーマットでプログラムをロードしようとしました (System.BadImageFormatException)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する