如何避免 TFS Build 使文件夹成为只读
How to avoid TFS Build making folders Read-Only
我们使用了以下用于网站的 TFS 部署策略 -:
1) Windows 机器文件复制
来源 : TFS 的文件夹
目标:应用程序服务器
现在,在这个网站内的一个文件夹中,文件先被删除,然后添加/重新创建。
但是通过 TFS 部署后,文件变为只读。所以无法删除文件,网站报错
如何在 TFS 部署中处理这种情况
我假设您构建了一个服务器工作区,或者您直接将文件从 TFVC 拉入服务器工作区 (see local vs. server workspaces)。在服务器工作区中,未签出的文件会在工作区中读取,以防止您在没有先告诉 TFS 您将要更改它们(签出)的情况下在本地进行更改。由于您的构建通常不会在您的工作区中执行任何源代码控制操作,因此当您复制或将它们发布为工件时,某些或所有文件将保持只读状态。
如果您将项目从 TFS 复制到另一个位置,这些只读标志也会被复制。但是,在从您的构建发布工件之前或在将文件复制到目标机器之前(或之后),使用 attrib -r
清除只读标志可以很容易地解决这个问题。有关递归等更多选项,请参阅 attrib 文档。
当您在IIS 6.0 中将文件夹路径设置为网站的物理路径时,您会看到该文件夹自动设为只读。
您可以在文件夹 属性 中删除此文件夹的只读设置。如果您想删除文件夹的只读设置。在 Windows Machine File Copy step 中,您需要提供一个帐户,该帐户是目标机器的管理员。
问题已通过添加 Windows robocopy 命令的一个属性得到解决。
/A-:R : 从复制的文件中删除只读属性。
“/A”:属性
"-" : 删除
"R" : 只读 属性
我们使用了以下用于网站的 TFS 部署策略 -:
1) Windows 机器文件复制
来源 : TFS 的文件夹 目标:应用程序服务器
现在,在这个网站内的一个文件夹中,文件先被删除,然后添加/重新创建。
但是通过 TFS 部署后,文件变为只读。所以无法删除文件,网站报错
如何在 TFS 部署中处理这种情况
我假设您构建了一个服务器工作区,或者您直接将文件从 TFVC 拉入服务器工作区 (see local vs. server workspaces)。在服务器工作区中,未签出的文件会在工作区中读取,以防止您在没有先告诉 TFS 您将要更改它们(签出)的情况下在本地进行更改。由于您的构建通常不会在您的工作区中执行任何源代码控制操作,因此当您复制或将它们发布为工件时,某些或所有文件将保持只读状态。
如果您将项目从 TFS 复制到另一个位置,这些只读标志也会被复制。但是,在从您的构建发布工件之前或在将文件复制到目标机器之前(或之后),使用 attrib -r
清除只读标志可以很容易地解决这个问题。有关递归等更多选项,请参阅 attrib 文档。
当您在IIS 6.0 中将文件夹路径设置为网站的物理路径时,您会看到该文件夹自动设为只读。
您可以在文件夹 属性 中删除此文件夹的只读设置。如果您想删除文件夹的只读设置。在 Windows Machine File Copy step 中,您需要提供一个帐户,该帐户是目标机器的管理员。
问题已通过添加 Windows robocopy 命令的一个属性得到解决。
/A-:R : 从复制的文件中删除只读属性。
“/A”:属性
"-" : 删除
"R" : 只读 属性