构建后事件无法执行

Posted

技术标签:

【中文标题】构建后事件无法执行【英文标题】:Post-build event can't be executed 【发布时间】:2013-04-19 06:08:37 【问题描述】:

我已将旧的 Visual C++ 6.0 项目转换为新的 Visual C++ 2010 项目。它可以运行,但是我从旧项目中获取的构建后事件存在问题。它在计算机上注册了目标文件(一个.ocx):

copy $(ProjDir)\PDFXChange\dll.Debug\*.* $(TargetDir) 
regsvr32 /s /c "$(TargetPath)" 
echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"

在我的新解决方案中它不起作用。我还在单个命令中对其进行了测试:在三个命令(copy、regsvr32 和 echo)中,只有最后一个可以执行。我的错误可能是什么。

错误:

error MSB3073: The command "copy \PDFXChange\dll.Debug\*.* C:\_tests_\ocx2010\Debug\ 
regsvr32 /s /c "C:\_tests_\ocx2010\.\Debug\LayoutBox.dll" 
echo regsvr32 exec. time > ".\Debug\\regsvr32.trg"
:VCEnd" exited with code 3. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets

COPY 和 REGSVR32 似乎不起作用。

【问题讨论】:

哪部分不起作用?你得到什么“错误”? @Cody Gray 我已经更新了我的问题。 【参考方案1】:

问题出在宏 $(ProjDir) 的名称中。在 Visual C++ 2010 中,它是 $(ProjectDir)

$(ProjDir) -> $(Proj ect Dir)

一些宏改变了他们的名字(经过这么多年)!

命令 copy \PDFXChange\dll.Debug*.* C:tests\ocx2010\Debug 应该将一些 DLL 复制到下一个命令 所在的文件夹中regsvr32 /s /c "C:tests\ocx2010.\Debug\LayoutBox.dll 试图注册目标文件。它在那里找不到任何 DLL,所以它退出了错误信息。

【讨论】:

以上是关于构建后事件无法执行的主要内容,如果未能解决你的问题,请参考以下文章

无法在post build事件命令行中执行.bat文件

使用 NSTask 执行离子构建命令 - 无法访问启动路径

无法在存储过程中执行多个查询而不会出现错误

无法在初始化时绑定事件处理程序

构建后事件执行 PowerShell

在VNext构建中执行Visual Studio Test任务期间无法发布测试结果