Regsvr32 は、DLL プロジェクトのビルド後のイベントとして失敗します。
ビルド後のイベント: regsvr32 /s /c "$(TargetPath)" (引用符なしでも試しました)。
/s を削除すると、エラー メッセージ LoadLibrary("...") が失敗しました - 指定されたモジュールが見つかりませんでした。
コマンド プロンプトから regsvr32 を実行すると、結果は成功です。「BAT000019.bat」ファイルをコピーして実行するか、直接実行すると、「DllRegisterServer in ...dll が成功しました」というメッセージが表示されます。DLL を Dependency Walker にロードしましたが、問題は見つかりませんでした。これは過去に機能していましたが、突然問題が発生し始めました。同じビルド後のイベントを持つプロジェクトが約 50 ありますが、この問題があるのは約 3 つだけです。DLL ファイルは、bat ファイルが生成された時点で存在します (使用中の可能性があります???)。
生成されたバット ファイルに問題はありません。
@echo off
regsvr32 /c "C:\ ... .dll"
if error level 1 goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: A tool returned an error code from "Performing registration"
exit 1
:VCEnd
その他の情報: OS: Windows XP SP3。IDE: VS 2003 Pro (最新)。言語: C++
ビルド後のイベントを削除することもできますが、一部の新しいプログラム デバッガー用に残しておきます。
誰でもこれを修正する方法について何か考えがありますか?
私が試したその他のこと: ビルド後のイベントでの DLL への相対パス。(失敗) ビルド後のイベントでの DLL への絶対パス。(失敗) 引用符なしで (絶対パスにスペースが含まれていない)。(失敗)