問題タブ [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.
mono - mono 実行可能ファイルに .dylib ファイルをバンドルする
アプリケーションがあり、特定の dylib をバンドルしたいと考えています。「dylibbundler」を使用して、依存関係とともにdylibを実行可能フォルダーにコピーしています。私が使用しているコマンドは次のとおりです。
dylibbundler は、実行可能ファイルと同じディレクトリにあります。このツールは、ライブラリとそのすべての依存関係に対して "install_name_tool" を再帰的に実行します (そして、それらを指定されたディレクトリにコピーします)。./libs/libil.1.dylib に対して otool -L を実行すると、以下が返されます。
すべてを正しくコピーしたようです。しかし、アプリケーションを実行すると、同じ例外が発生し続けます。
ご覧のとおり、ライブラリを参照する 3 つの異なる方法を試しましたが、常に検索に失敗します。
何か助けていただければ幸いです。私はこの問題を何ヶ月も解決しようとしています。
更新: dylibへの絶対パスを指定すると、それが見つかりますが、依存関係について不平を言います:
@executable_path が実際の絶対実行可能パスに置き換えられていないように思えます。
macos - Unity3d Mac OSX Dll notfoundexception を使用したネイティブ プラグイン
サードパーティのネイティブ プラグインをunity3Dに統合しようとしています。それを使用するために、ラッパー dll として ac# プラグインを作成しました。プラグイン バイナリを手動でビルド フォルダーに EXE ファイルと共にコピーすると、プラグインは PC スタンドアロンで正常に動作します。プラグイン ビルド プロセスにはデバッグ構成を使用しました。
問題は:
- Mac OS X ビルドを作成すると、DllNotFoundExceptionが発生します。私の c# プラグイン ファイルは、「\Contents\Data\Managed」にあるアプリ内に、他の Unity 関連のプラグインと一緒に配置されています。これは、Unity がラッパー プラグインを認識しているが、ネイティブ プラグインをコピーしていないことを意味します。
すでに試したこと:
Assets/Plugins/フォルダーにもネイティブ プラグインをコピーして、ビルドにも含まれるようにしましたが、Unity はそれらをビルドに含めませんでした。
ネイティブ プラグインを " \Contents\Data\Managed " フォルダーとアプリ内の他のフォルダーに配置しようとしましたが、それでも dll を見つけることができませんでした。
ネイティブ プラグインに付属の dylib ファイルを、ラッパー プラグインと一緒に配置しようとしましたが、うまくいきませんでした。
" \Contents\Data\Managed\etc\mono "の構成ファイルで dllmap を実行しようとしましたが、うまくいきませんでした。
私はアイデアがありません。どんな助けでも大歓迎です。
linux - doc2x linux r649 zlibwapi.dll が見つかりません
おそらくこれは非常に愚かな間違いですが、誰かが私の手順を再現してエラーをチェックしてみてください。
Linux Mint 15 を使用しています。ここから doc2x (バイナリ -> openxml msword コンバーター) をダウンロードしました: https://sourceforge.net/project/downloading.php?group_id=216787&filename=doc2x_r649.tar.gz&a=13775724
tar -xzf doc2x_r649.tar.gz で解凍しました
アーカイブにはバイナリが含まれており、Mono 互換である必要があります。
mono v2.0 および mono v4.0 プロファイルがインストールされています。
変換しようとすると、エラーがスローされます。
問題は最初の行「 2/23/2014 9:00:25 PM [D] System.DllNotFoundException: zlibwapi.dll 」にあると思います。zlibwapi.dllは、コンバーターのディレクトリにあります。いくつかの場所(通常は図書館で使用される)にコピーしようとしましたが、うまくいきません。そもそもMonoが現在のディレクトリでライブラリを探していることを読んだので、問題はないはずです。
それを機能させる方法は?前もって感謝します!
c# - Unity の EmguCV での DllNotFoundException
Unity Pro で EmguCV の Capture クラスを使用しようとしていますが、そのコンストラクターを呼び出すたびに、次のエラーが発生します。
DllNotFoundException: opencv_core249 Emgu.CV.CvInvoke..cctor () Rethrow as TypeInitializationException: Emgu.CV.CvInvoke Emgu.CV.Capture..ctor (Int32 camIndex) の型初期化子によって例外がスローされました
たとえば、Visual Studio で問題を解決するには、opencv_coreXXX と opencv_highguiXXX をコピーして出力フォルダーに貼り付けるだけでよいと読みましたが、この解決策は Unity では機能しないようです。
問題は、Unity が正しいフォルダー (すべての EmguCV dll を配置した出力フォルダー) を検索しているのに、dll が見つからないように見えることです。
Unity に EmguCV をインストールするには、この人物が次のリンクで説明している手順に従いました: http://forum.unity3d.com/threads/182600-OpenCV-(EMGUCV-wrapper)-integration-in-Unity
c# - Setup Project を使用してインストールした後、C# Winform アプリケーションが起動に失敗する
Setup Project Deployment Installation の後にショートカットを実行すると、次のエラーが発生し、アプリケーションが起動しませんでした。
Winforms (C#) を使用して Windows アプリケーションを作成しています。リリースモードでコンパイルしましたが、それでもエラーが発生しました。
編集1:
私はC#、Windowsフォームで作業しています。
以下の参考文献を追加しました。
- EntityFramework.dll
- EntityFrameworkServer.dll
- System.Data.Sqlite.dll
- System.Data.Sqlite.EF6.dll
- System.Data.Sqlite.Linq.dll
システム自体でテストすると、エラーが発生します。
c# - C# からの DllNotFoundException ですが、VB.NET からではありません
アプリケーションと統合するサードパーティの DLL があります。これは 32 ビットの C++ DLL であり、COM 経由で公開されません。また、ソース コードやヘッダー ファイルも提供されていません。
これは、WinForms の例で動作する VB.NET のサンプル コードと共に提供されました。これは、API DLL および API がインターフェースしているアプリケーションと同じディレクトリから実行可能ファイルが実行されている限り、機能します。
関数宣言の例を使用していました。
ただし、Web サイトまたは Web サービスで使用する C# ライブラリからの API 呼び出しを使用するため、サンプルの VB コードを次のように変換しました。
C# ライブラリ内からこれを呼び出すと、エラーが発生します
私は別のルートを取り、例から元の動作する VB コードを独自の VB.NET DLL に入れ、それを C# 経由で呼び出しました。同じエラーが発生しました。奇妙なことに、VB.NET コンソール アプリからの VB.NET DLL の呼び出しは機能します。
要約すれば:
- シンプルな VB.NET コンソール アプリが動作します
- シンプルな VB.NET WinForms アプリが動作します
- シンプルな VB.NET コンソール アプリは、VB.NET DLL を介して GetVersion を呼び出すことができます。
- シンプルな C# コンソール アプリは、VB.NET DLL 経由で GetVersion を呼び出すことができません。
- シンプルな C# コンソール アプリでは、GetVersion を直接呼び出すことはできません。これは、関数呼び出しの定義が間違っていることが原因である可能性があります。この段階では、私はこれについてあまり心配していません。
- 32 ビット コンパイルで問題が解決しない
- Server 2008 R2 および Windows 7 Enterprise でこれを試しました
NT サービスを介して WCF ホストを作成し、関数を公開しました。これにより、ファイルの場所と依存関係が回避されることを期待しています。これは VB.NET で記述され、ThirdPartyApi.dll と同じフォルダーに配置されています。
- NT サービスのどのコードも GetVersion にアクセスできませんでした
- WCF サービスのどのコードも GetVersion にアクセスできませんでした
上記のすべてのケースで、実行可能ファイルは ThirdPartyApi.dll と同じディレクトリにあることに注意してください。その依存関係もすべてこのディレクトリに存在します。
誰かがこの動作を説明したり、これを C# Web サイト内で機能させる方法を提案したりできますか?
ありがとう
c# - DllNotFoundException のキャッチが機能しない
接続されたスキャナーを PC に記録しようとしています。
から NTwain.dll を使用していhttps://bitbucket.org/soukoku/ntwainます。
サーバーでアプリを実行すると、ntwain からのいくつかの依存関係 dll の読み込みに失敗するため、実行時に dll を読み込みます。失敗した場合は、空のリストを返したいだけです。プロジェクト参照にNTwainへの参照はもうありません。
問題: exe があるフォルダーに NTwain.dll があり、それをサーバー上で実行すると、アプリがクラッシュします。空のリストは返されません。dll を削除してアプリを実行すると、空のリストが返されます。
コード:
c# - ターゲット マシンで DLL が見つかりません
私は同様の問題を抱えています。
私は、他のいくつかのdllに依存しているdllをピンボークしているac#アプリを開発しました。開発マシンでは正常に動作しています。すべてのdllとexeファイルを含むデバッグフォルダーを別の場所にコピーしても、正常に動作します。
同じフォルダーを別のマシンにコピーすると、dll が見つからないという例外が発生します。
興味深いことに、エラー メッセージには、開発マシンに存在するコード ファイルへのパスが示されます。この情報がターゲット マシンでどのように認識されているかわかりませんか?
デバッグ バージョンとリリース バージョンの両方を試しましたが、リリース バージョンはクラッシュするだけで、デバッグ バージョンでは例外メッセージが表示されます。
依存関係ウォーカーを試しましたが、エラーの原因となっている依存 dll が欠落しているかどうかを判断できませんでした。
VC++ ランタイム再配布パッケージもインストールしようとしましたが、うまくいきませんでした。
開発マシンのWin 7 64ビットでVS2013を使用しています。対象はWin7 64bitです。dll は tesseract OCR に関連しており、ここからコピーされます。