我所在的项目使用CVSNT 2.5.03 在服务器端设置的hook程序来自动进行代码和配置文件的检查, 起初用perl写, 后来改为用C#写, 实际使用中发现, 配合使用tortoise cvs时, 如果hook程序又调用了其它的程序, 通过ProcessStartInfo + Process产生的子程序的标准输出和标准错误输出中的任何写内容, 都会导致程序出现一个死锁, 原因不明, 用windbg调用发现, 每次都block在一个WriteLine调用中, 而在主hook程序中产生的标准输出和标准错误输出都可以正确被 tortoise cvs接收到.
C# 2.0开始, 一个EXE 程序可以在编译时reference 另一个exe程序.
用proc explorer观察, 这样产生的程序在运行时, 被reference的exe程序并不作为它的一个子模块被load, 具体loader是怎么处理的目前我还不清楚. 但确定在运行时不会再reference该exe, 可以删除(普通的, 正被一个进程load的DLL, 是不能被删除的).
阅读(1101) | 评论(0) | 转发(0) |