每次从vss获取文件都是只读

在 Visual Studio 2008 中,使用 VSS 作为源码管理器,把文件签入后,文件会自动变为只读状态。在公司习惯是在某个开发人员的机器上获取最新的代码后编译,编译完之后服务器上再从 VSS 源码库里获取最新的程序供测试人员测试,在这种情况下,我们把项目生成的一个 DLL 也加会加入到 VSS 源码管理中去,所以在每次需要把项目更新到服务器上的时候,都会先把项目生成的 DLL文件签出来,编译完后再签入进去,签进去之后 DLL 文件就能变成只读的了,这个时候如果再在 VS2008 中编译项目,VS2008将会出现无法将文件“obj\Debug\xx.dll”复制到“bin\xx.dll”。对路径“bin\xx.dll”的访问被拒绝.的错误,所以每次都得手工去掉这个 DLL 文件的只读属性。感觉很麻烦。

 

后来找到了一种方法,就是在项目生成之前运行一个命令,自动去掉这个 DLL 的只读属性,这样在编译的时候就不会出错了,具体设置是打开项目属性 ,然后打开“生成事件”活页,在“预生成事件命令行”下面的框里写入“attrib $(TargetPath) -R” 就可以了,这样在每次编译的时候,都会先运行这个命令去掉项目生成的 DLL 文件的只读属性。

attrib是一条dos命令,用于修改文件或文件夹的属性。

对于windows文件的常见属性有:只读.存档.隐藏和系统.

参数 :
+r
设置只读文件属性。
-r 
清除只读文件属性。
+a 
设置存档属性。
-a 
清除存档属性。
+s 
设置系统文件属性。
-s 
清除系统文件属性。
+h 
设置隐藏文件属性。
-h 
清除隐藏文件属性。

posted @ 2013-06-18 09:23  冰城小菜刀  阅读(1153)  评论(1编辑  收藏  举报