問題タブ [dllnotfoundexception]
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.
c# - DllNotFoundException PInvoke の問題
Visual Studio 2013 (C# コード) でのテスト実行中に、次のようなエラーが発生しました。
System.TypeInitializationException: System.TypeInitializationException: 'Teigha.Core.GlobalsPINVOKE' の型初期化子が例外をスローしました。---> System.TypeInitializationException: 'SWIGExceptionHelper' の型初期化子が例外をスローしました。---> System.DllNotFoundException: DLL 'TD_SwigCore_4.00_10.dll' を読み込めません: 指定されたモジュールが見つかりませんでした。(HRESULT からの例外: 0x8007007E)。テストの実行を中止しています。
私の友人は、別のコンピューターで同じコード ブランチを使用しています。彼にはそのような問題はありません。すべての dll は、ビルド中に TestResults\Deploy ディレクトリにコピーされます (TD_SwigCore_4.00_10.dll も)。
使った
この dll の dll 依存関係を確認するには: KERNEL32.dll、USER32.dll、ole32.dll、TD_Ge_4.00_10.dll、TD_DbRoot_4.00_10.dll、TD_Gi_4.00_10.dll、TD_Gs_4.00_10.dll、TD_SpatialIndex_4.00_10.dll、 TD_Br_4.00_10.dll、TD_Db_4.00_10.dll、TD_Root_4.00_10.dll、TD_Alloc_4.00_10.dll、MSVCP100.dll、MSVCR100.dll。このすべての dll を system32 フォルダーにコピーして、すべての dll が読み込まれるようにしました ( https://msdn.microsoft.com/en-us/library/7d83bc18(v=vs.120).aspx )。これは役に立ちません。エラーはまだ存在します。
c# - C# System.DllNotFoundException
cryptlex (cryptlex.com) が提供する製品アクティベーション システムを使用した簡単なアプリケーションがあります。
プログラムは私のコンピューターでは正しく動作しますが、別のコンピューターでプログラムを実行しようとすると、次のエラーが返されます。
dll が実行可能フォルダー内にあり、すべてが正常に見えることを確認済みです。
cryptlex のすべての部分を削除すると、プログラムはどのマシン (x86-x64) でも完全に動作します。
depencywalker を使用してエラーをチェックしたところ、cryptlex を使用する実行可能ファイルで次の 2 つが見つかりました。
Windows 7 64 ビット、.NET バージョン: 4.0
unity3d - ポケットフィンクスのSystem.DllNotFoundExceptionユニティウィンドウビルド
ゴール:
Windows の Unity プロジェクトで pocketphinx を使用するためのラッパー dll を取得します。
問題:
テスト プログラムを実行するとSystem.DllNotFoundException
、.so ファイルが mono プログラムと同じディレクトリにあるにもかかわらず、迷惑なメッセージが表示されます。
セットアップと試行されたアクション:
まず、Cygwin を使用しています。私は絶対にすべてを構築することができました.sphinxbaseとpokesphinxは問題ありません. 次に、swig/csharp ディレクトリに移動して、make を試みました。.so ファイルが作成されます。私はデフォルトの Makefile を使用しており、cygwin で作成しています。ルール 1 から 3 は、ビルド、リンク、およびすべてを完全に正常に実行します。pocketphinx_continuous テストも同様です。
試行するとmono test.exe
、次のことが起こります。
.so
は test.exe ファイルと同じディレクトリにあり、確かに調べられています。これは、でモノを実行すると、MONO_LOG_LEVEL=debug
出力が次のようになるためです。
何度も何度も。
どんな助けでも大歓迎です。繰り返しますが、Unity のウィンドウが C# ファイルと相互運用するには、libpocketsphinx.so x86_64 が必要です。
ありがとう。
--- 編集 - 関連するスニペットを追加しました。test.cs は、ラッパー データ構造からこのメソッドを呼び出すだけです。これらのファイルはすべて SWIG によって生成されました。
c# - 特定の Visual Studio ソリューションでのみ発生する C# の奇妙な DllNotFoundException
これは奇妙に見えるかもしれませんが、状況を説明します: 私は会社とのプロジェクトで働き始めたばかりで、GitHub リポジトリから C# ソリューションを複製しました。ソリューションのプロジェクトの 1 つは、開発者のマシンにインストールされているサードパーティの .NET アセンブリに依存しています (基本的に、ソフトウェアをインストールし、そのアセンブリはインストールの一部であるため、ソフトウェアの場所から参照します)。がインストールされています)。その DLL からクラスをインスタンス化しようとするとDllNotFoundException
、.NET アセンブリではない別の DLL から取得します。確認したところ、その DLL は、プロジェクトが参照する .NET アセンブリと同じフォルダーに存在します。この問題の原因が何かはわかりませんが、次の 2 つのテストを行いました。
- ダミー コンソール アプリケーションを使用して新しいダミー ソリューションを作成し、その .NET アセンブリをプロジェクトに参照して、そのクラスをインスタンス化しようとしました。結果:効きました!
- GitHub から複製した同じソリューションでダミー コンソール アプリケーションを作成しました。結果:同じ例外です!
これにより、問題はソリューション自体にあると思われますが、この問題が何であるかはわかりませんので、助けていただければ幸いです。