問題タブ [assembly-loading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1019 参照

mono.cecil - Mono.Cecil で TypeReference を TypeDefinition に解決すると、アセンブリ解決エラーで失敗する

.NET 型から Mono.Cecil TypeDefinition を取得しようとしていますが、運がありません。

私は次のようなコードを使用しています:

しかし、アセンブリ解決エラーで失敗します:

GetConfigurationPropertiesTest [0:29.990] 失敗: Mono.Cecil.AssemblyResolutionException: アセンブリの解決に失敗しました: 'MarkdownMonster, Version=1.18.11.0, Culture=neutral, PublicKeyToken=null' Mono.Cecil.AssemblyResolutionException: アセンブリの解決に失敗しました: 'MarkdownMonster, Version=1.18.11.0、Culture=neutral、PublicKeyToken=null' at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters) at Mono.Cecil.DefaultAssemblyResolver.Resolve(AssemblyNameReference name) at Mono.Cecil.MetadataResolver.Resolve( TypeReference 型) で Mono.Cecil.TypeReference.Resolve() で Westwind.TypeImporter.TypeParser.ParseObject(型の型、Boolean dontParseMembers)

TypeReference インポートが機能しているようで、有効な TypeReference を生成するため、アセンブリは明らかにそこにあります。

問題のアセンブリは EXE であり、キックのために名前を DLL に変更しましたが、効果はありませんでした。

0 投票する
1 に答える
1928 参照

.net - Microsoft.Diagnostics.Tracing.EventSource と RabbitMQ.Client.dll 例外

次のエラーが表示されるのはなぜですか?どうすれば修正できますか?

タイプ 'System.IO.FileLoadException' の未処理の例外が RabbitMQ.Client.dll で発生しましたファイルまたはアセンブリを読み込めませんでしたその依存関係の。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

アップデート

以下のコメント セクションのコメントの後、Visual Studio 2019でMicrosoft.Diagnostics.Tracing.EventSourceを見つけようとしています。これにショートカットを使用していますが、まだファイルが見つかりません。ファイルはどこに配置できますか?Ctrl + Shift + T

ここに画像の説明を入力

0 投票する
0 に答える
1728 参照

c# - 外部移行アセンブリを使用してコードから EFCore データベースを移行する方法は?

.NET Core 3.1 と Entity Framework Core を使用して、IdentityServer4 を含むアプリケーションを作成しています。複数のデータベース タイプをターゲットにできるように意図されています。

さまざまな例に従って、DbContexts を含む IdentityServer プロジェクト自体に加えて、2 つの個別の移行アセンブリを使用して、SQL Server と MySQL の両方で動作させることができました。

Startup.cs には次のものがあります。

ServerType は、「SqlServer」または「MySql」の構成列挙型です。

dotnet コマンド ラインを使用すると、移行は正しく機能します

構成またはコマンドラインを使用して、IdentityServer に移行自体を適用できるようにしたいと考えています。

例 Main()

ただし、これを行うと例外が発生します。

移行アセンブリは、プロジェクトの DLL および EXE と同じディレクトリにあります。

解決できないのは、移行アセンブリを読み込めない理由です。

実験として、コールバックを接続し、アセンブリを手動でロードするためにAssemblyLoadContext.Default.Resolving使用しました。Assembly.LoadFrom(<path>)これは機能し、移行を正しく適用しますが、非常に厄介な回避策です。

context.Database.Migrate()から呼び出されたときにアセンブリの読み込みが失敗するのに、ef ツールを使用したときやコールバックで手動で読み込まれたときに失敗する理由を誰かが明らかにすることはできResolvingますか?


編集

同じソリューションの別のプロジェクトで行っていることと一致する回避策を見つけたと思います。

そのプロジェクトの実行時に Dot Net Core DI フレームワークにモジュールを動的にロードしており、モジュールの移行は正しく機能しているように見えます。

ライブラリをプロジェクトに追加してScutor、手動で読み込まれた移行アセンブリを DI サービス コレクションにスキャンしました。クラスは登録されていませんがAssemblyLoadContext、移行コードがアセンブリをロードできるようにするには、アセンブリをロードするのに十分なようです。

ただし、これは移行アセンブリを自動的にロードできない理由を説明していません。