問題描述:
使用開源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
具體需求和工作時間可以詳談。