このアセンブリをAppDomainにロードする方法は?

アシュリー

私はこれから地獄を検索しましたが、ファイルが明らかに存在し、File.ReadAllBytesで開くことができるのにFileNotFoundExceptionが発生する理由を完全に理解することはできません

これは私の現在のコードです:

AppDomainSetup domainInfo = new AppDomainSetup();
domainInfo.ApplicationBase = PluginDirectory;
Evidence adEvidence = AppDomain.CurrentDomain.Evidence;
AppDomain pluginDomain = AppDomain.CreateDomain("pluginDomain", adEvidence, domainInfo);

foreach (FileInfo file in files)
{
    if (m_AssemblyIgnoreList.Contains(file.Name))
        continue;

    byte[] assemblyBytes = File.ReadAllBytes(file.FullName);
    //Assembly plugin = Assembly.LoadFrom(file.FullName);

    Assembly plugin = pluginDomain.Load(assemblyBytes);

    LoadPlayerEvents(plugin);
}

AppDomain.Unload(pluginDomain);

プラグインフォルダー内からすべての.dllファイルをロードし、属性付きのタイプと関数の束をロードしようとしています。

Assembly.LoadFrom(file.FullName)を使用すると、属性付きの型と関数の読み込みがファイルで機能します。ただし、pluginDomain.Load(assemblyBytes)により、次の例外が発生します。

FileNotFoundException: Could not load file or assembly 'Example Mod, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

File.ReadAllBytesは完全に機能するため、指定されたファイルを確実に見つけることができます。例外として、ロードしようとしているアセンブリのフルネームが表示されます。したがって、依存関係をロードできないという結論に達しました。

すべての依存関係はすでにCurrentDomainにロードされています。ただし、これらの依存関係を.dllのすぐ隣に配置した場合でも(これは、とにかく上記の.dllのビルド中に発生します)、同じ例外が生成されます。

ファイルが明らかに存在するのに、なぜこの例外が発生するのですか?

h3rb4l

ここで説明するように、現在のドメインのAssemblyResolveイベントハンドラーにアセンブリをロードする必要があります

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

applicationBase C#の外部のAppDomainにアセンブリをロードする

分類Dev

異なるバージョンのアセンブリを別のAppDomainにロードします

分類Dev

複数のアセンブリバージョンを複数のAppDomainにロードします

分類Dev

dotnetcoreにアセンブリを動的にロードする方法

分類Dev

Linux上のPowerShell-.Netアセンブリをロード\使用する方法は?

分類Dev

不要なアセンブリのロードを回避する方法

分類Dev

AppDomainをアンロードすると、1つを除くすべてのアセンブリが解放されます

分類Dev

別のWPFアプリからWPFアプリケーションアセンブリをロードすると、エラーが発生します:同じAppDomainに複数のSystem.Windows.Applicationインスタンスを作成できません

分類Dev

独自のAppDomainでアセンブリをロードおよびアンロード

分類Dev

Javaプログラムの効率(特に:アセンブリコード)を測定する方法は?

分類Dev

スプラッシュ画面で.Netの現在のAppDomainへのアセンブリのロードの進行状況を報告するにはどうすればよいですか?

分類Dev

Unity Editorで一部のアセンブリのリロードを選択的にブロックすることは可能ですか?

分類Dev

Cライブラリ関数をアセンブリにロードし、別のCまたはアセンブリプロジェクトでアセンブリライブラリ関数を使用する方法

分類Dev

このアセンブリコードの流れを理解する方法

分類Dev

AppDomainで.NET以外のすべてのフレームワークアセンブリを取得するにはどうすればよいですか?

分類Dev

CSharpCodeProviderによって作成されたアセンブリをアンロードする方法は?

分類Dev

このコードをノンブロッキングでロックフリーに変換する方法は?

分類Dev

dotnet coreに動的にロードされたアセンブリをアンロードすることは可能ですか?

分類Dev

アセンブリはC#アプリケーションのどこにロードされますか?

分類Dev

このアセンブリコードを実行するにはどうすればよいですか?

分類Dev

このARMアセンブリコードプログラムの実行後にN、C、Z、Vフラグを見つける方法は?

分類Dev

このリンクからFlashオブジェクト/アセットをダウンロードするにはどうすればよいですか?

分類Dev

アセンブリを動的にロードするC#は非常に遅い

分類Dev

このアセンブリコードに偶数または奇数を追加する正しい方法は何ですか

分類Dev

このアセンブリコードがセグメンテーション違反をスローするのはなぜですか?

分類Dev

別のアセンブリにあるBackgroundWorkerからProgressControlをデータバインドする方法は?

分類Dev

アセンブリ言語の定義ダブルワードに4文字を格納する方法は?

分類Dev

厳密な名前のアセンブリからResourceDictionaryをロードする方法は?

分類Dev

シェルコードをアセンブリ命令に逆アセンブルする方法は?

Related 関連記事

  1. 1

    applicationBase C#の外部のAppDomainにアセンブリをロードする

  2. 2

    異なるバージョンのアセンブリを別のAppDomainにロードします

  3. 3

    複数のアセンブリバージョンを複数のAppDomainにロードします

  4. 4

    dotnetcoreにアセンブリを動的にロードする方法

  5. 5

    Linux上のPowerShell-.Netアセンブリをロード\使用する方法は?

  6. 6

    不要なアセンブリのロードを回避する方法

  7. 7

    AppDomainをアンロードすると、1つを除くすべてのアセンブリが解放されます

  8. 8

    別のWPFアプリからWPFアプリケーションアセンブリをロードすると、エラーが発生します:同じAppDomainに複数のSystem.Windows.Applicationインスタンスを作成できません

  9. 9

    独自のAppDomainでアセンブリをロードおよびアンロード

  10. 10

    Javaプログラムの効率(特に:アセンブリコード)を測定する方法は?

  11. 11

    スプラッシュ画面で.Netの現在のAppDomainへのアセンブリのロードの進行状況を報告するにはどうすればよいですか?

  12. 12

    Unity Editorで一部のアセンブリのリロードを選択的にブロックすることは可能ですか?

  13. 13

    Cライブラリ関数をアセンブリにロードし、別のCまたはアセンブリプロジェクトでアセンブリライブラリ関数を使用する方法

  14. 14

    このアセンブリコードの流れを理解する方法

  15. 15

    AppDomainで.NET以外のすべてのフレームワークアセンブリを取得するにはどうすればよいですか?

  16. 16

    CSharpCodeProviderによって作成されたアセンブリをアンロードする方法は?

  17. 17

    このコードをノンブロッキングでロックフリーに変換する方法は?

  18. 18

    dotnet coreに動的にロードされたアセンブリをアンロードすることは可能ですか?

  19. 19

    アセンブリはC#アプリケーションのどこにロードされますか?

  20. 20

    このアセンブリコードを実行するにはどうすればよいですか?

  21. 21

    このARMアセンブリコードプログラムの実行後にN、C、Z、Vフラグを見つける方法は?

  22. 22

    このリンクからFlashオブジェクト/アセットをダウンロードするにはどうすればよいですか?

  23. 23

    アセンブリを動的にロードするC#は非常に遅い

  24. 24

    このアセンブリコードに偶数または奇数を追加する正しい方法は何ですか

  25. 25

    このアセンブリコードがセグメンテーション違反をスローするのはなぜですか?

  26. 26

    別のアセンブリにあるBackgroundWorkerからProgressControlをデータバインドする方法は?

  27. 27

    アセンブリ言語の定義ダブルワードに4文字を格納する方法は?

  28. 28

    厳密な名前のアセンブリからResourceDictionaryをロードする方法は?

  29. 29

    シェルコードをアセンブリ命令に逆アセンブルする方法は?

ホットタグ

アーカイブ