问题描述:
使用开源SVN客户端组件SharpSvn(https://sharpsvn.open.collab.net/
)在Windows操作系统下执行SVN操作(update、commit、status、lock等SVN命令)时,如果目标文件已经在其它进程打开(如Word、CAD),引发错误:Can't open file 'xxxx': the file is open in another process
原因分析:
SharpSvn组件进行文件操作时,会以读/写模式打开文件。涉及Windows操作系统的文件访问与文件锁机制,如果该文件已经被其他进程以读/写模式打开会造成上述错误。
SharpSvn是一个以C++和C#编写的开源组件,封装了基本的SVNAPI命令。 网上搜索到针对文件打开错误的解决方案:修改并重新编译SharpSvn依赖的APR,改变SharpSvn打开文件的模式,可以实现与其他进程共享(读)同一个文件。
解决方案描述:
https://sharpsvn.open.collab.net/ds/viewMessage.do?dsForumId=728&viewType=browseAll&dsMessageId=391699
具体需求和工作时间可以详谈。