問題タブ [sgen]
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.
.net - リリース ビルド中に CefSharp.Core.dll が見つからない
AnyCPU で「32 ビット優先」として配布されている .net 4.6.2 プロジェクトがあり、パッケージに x86 と x64 の両方のバージョンがある CefSharp を使用しています。
AnyCPU サポートを追加するための CefSharp プロジェクトの推奨事項 (オプション 1)に従って、次のことを行いました。
- 私の .csproj ファイルの最初に true を追加しました
- app.config ファイルに以下を追加しました。
- すでに述べたように、私のプロジェクト構成はすべて「32ビットを優先」に設定されています
- 起動時に Cef を次のように初期化しました。
デバッグではすべて正常に動作しますが、リリース バージョンをビルドしようとすると、詳細モードでエラーが発生します。
2>SGEN: エラー: ファイルまたはアセンブリ 'CefSharp.Core.dll' またはその依存関係の 1 つを読み込めませんでした。指定されたモジュールが見つかりませんでした。
さらに上には、SGEN への次の参照が渡されていることがわかります。
2> 参照 = 2>C:\SVN\MySolution\Branches\MyBranch\packages\CefSharp.Common.63.0.2\build..\CefSharp\x86\CefSharp.Core.dll 2>C:\SVN\MySolution\Branches \MyBranch\packages\CefSharp.Common.63.0.2\build..\CefSharp\x86\CefSharp.dll 2>C:\SVN\MySolution\Branches\MyBranch\packages\CefSharp.WinForms.63.0.2\build.. \CefSharp\x86\CefSharp.WinForms.dll
CefSharp.Common.props ファイルからのもののようです:
または CefSharp.Common.targets ファイル:
ファイル名の "build.." 部分が SGEN によって解決されない場合に備えて、"$(MSBuildThisFileDirectory).." をハードコーディングしてみました (実際にはこれを実行したくない理由がたくさんあります。しかし、それはテストでした)、まったく同じ問題が発生しましたが、正しい絶対パスが SGEN への参照として渡されました:
2> 参照 = 2>C:\SVN\MySolution\Branches\MyBranch\packages\CefSharp.Common.63.0.2\CefSharp\x86\CefSharp.Core.dll 2>C:\SVN\MySolution\Branches\MyBranch\packages \CefSharp.Common.63.0.2\CefSharp\x86\CefSharp.dll 2>C:\SVN\MySolution\Branches\MyBranch\packages\CefSharp.WinForms.63.0.2\CefSharp\x86\CefSharp.WinForms.dll
これにより、SGEN が dll を読み込めない理由の問題が残ります。したがって、私の現在の考えでは、これは依存関係の欠落によるものです。この参照リストに libcef.dll が含まれていることを期待する必要がありますか? .csproj ファイルに他のパッケージを追加しました。
また、上記の 2 番目の x64 インポート行をコメントアウトしようとしましたが、役に立ちませんでした。
[更新] Fusion のログ記録をオンにしました ( SGEN エラーに関する Yavor Georgiev のブログ投稿によると)、それによると、dll は正常にロードされました。