Regsvr32 作为 DLL 项目的构建后事件失败。
构建后事件: regsvr32 /s /c "$(TargetPath)" (也尝试不带引号)。
删除 /s 会导致错误消息 LoadLibrary("...") failed - The specified module could not be found。
如果我从命令提示符运行 regsvr32 结果是成功的。如果我复制并运行甚至直接运行“BAT000019.bat”文件,我会收到结果消息“...dll 中的 DllRegisterServer 成功”。我已经在 Dependency Walker 中加载了 DLL,没有发现任何问题。这在过去有效,但突然开始出现问题。我有大约 50 个具有相同后期构建事件的项目,只有大约 3 个有这个问题。生成bat文件时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
其他信息: 操作系统:Windows XP SP3。IDE:VS 2003 Pro(最新)。语言:C++
我可以只删除构建后事件,但宁愿为我们的一些较新的程序调试器保留它。
有人对如何解决这个问题有任何想法吗?
我尝试过的其他事情:构建后事件中 DLL 的相对路径。(失败)构建后事件中 DLL 的绝对路径。(失败)不带引号(绝对路径中不包含空格)。(失败)