博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一个vc.net生成后事件失败的解决办法

Posted on 2008-12-30 09:48  浪端之渡鸟  阅读(826)  评论(0编辑  收藏  举报

想利用vs.net的生成后事件将生成的dll文件自动copy到指定的系统目录中,于是,在项目属性中输入生成后事件指令如下

copy $(OutputDir)instrumentation.dll c:/windows/system32/

但产生了编译错误报告:

error PRJ0019: 工具从"正在执行生成后事件..."

 

网上搜索,没有有效解决办法。于是自己动手。

想想生成后事件不过也是命令行程序,因此在命令行下输入上面的copy指令,将$(OutputDir)换成输出目录的完整路径后顿悟原来是因为工程建在c:/program files/文件夹内,中间有空格,因此shell理解为将c:/program这个文件(夹)copy./files/…中,因此报错。

解决办法,将带空格的路径放在” ”shell就可以正确识别了,指令如下

copy “$(OutputDir)instrumentation.dll” “c:/windows/system32/”

 

另外,类似的error PRJ0019不见得都是因为这个缘故,但都可以通过在cmd中直接测试生成后事件指令来分析解决,因为生成后事件实际上就是个shell脚本。