極小構成(Tauriのデフォルトテンプレートのみ)でビルドした telos-db.exe においても、起動時に STATUS_ENTRYPOINT_NOT_FOUND (0xc0000139) が発生し続ける。
ユーザーの「依存範囲は明示的なはず」という指摘は、ソースコードレベル(Cargo/npm)では正しいですが、Windows OS の実行時(Runtime)レベルでは以下の「暗黙の優先順位」が優先されるため、エラーが発生しました。
Windows が DLL を探す順序は以下の通りです:
.exe がある場所)C:\Windows\System32)PATH に設定されたディレクトリ(先頭から順に)今回のエラー 0xc0000139 は、「DLL ファイルは見つかったが、その中にあるはずの関数が見つからない」ことを意味します。これは以下の理由で起こります:
アプリケーションが MSVC でビルドされている場合、MSVC 形式の関数を DLL から探します。しかし、PATH のどこかに MinGW でビルドされた同名の DLL(例: WebView2Loader.dll)が存在し、OS がそれを先にロードしてしまうと、「名前は同じだが、中身の形式(呼び出し規約)が違う」ため、エントリポイントが見つからずクラッシュします。
スキャンの結果、以下のパスに MinGW 系の DLL が多数存在することが判明しました:
D:\LLM\text-generation-webui\installer_files\env\Library\mingw64\binC:\msys64\... (以前の調査で確認)これらのディレクトリが PATH に含まれていると、Cargo がどれだけ厳密に依存関係を管理していても、OS が実行時に「あ、近くの PATH に WebView2Loader.dll があったから、これをロードしよう」と勝手に誤認してしまいます。
PATH 環境変数から、MinGW, MSYS2, その他 LLM インストーラが追加したパスを一時的に除外する。.exe と同じディレクトリに明示的に配置する。src/backend/src/lib.rs を元の正常なロジックに復元する。Cargo.toml の libsqlite3-sys の指定を元に戻す(環境がクリーンなら不要)。graph TD
A[Cargo ビルド] -->|MSVCツールチェーン| B[telos-db.exe 生成]
B -->|実行開始| C{DLL 探索開始}
C -->|1. 実行ディレクトリ| D[なし]
C -->|2. PATH 環境変数| E[D:\LLM\... を発見]
E -->|MinGW版 DLL をロード| F[ABI 不整合発生]
F -->|クラッシュ| G[0xc0000139 Error]