【问题标题】:How to avoid TFS Build making folders Read-Only如何避免 TFS Build 使文件夹只读
【发布时间】:2017-09-05 03:19:37
【问题描述】:

我们使用了以下用于网站的 TFS 部署策略 -:

1) Windows 机器文件复制

来源:TFS的文件夹 目标:应用服务器

现在,在放置在本网站内的文件夹中,文件首先被删除,然后被添加/重新创建。

但通过 TFS 部署后,文件变为只读。所以文件无法删除,网站报错。

TFS部署中如何处理这种情况

【问题讨论】:

  • 您的意思是在构建过程中清理目标文件夹下的文件时使用此步骤会出错吗?能否请您发布错误消息?
  • 文件在构建后被转换为只读,这就是屏幕出现错误的原因。

标签: visual-studio tfs tfsbuild robocopy


【解决方案1】:

我假设您构建了一个服务器工作区,或者您直接将文件从 TFVC 拉到服务器工作区 (see local vs. server workspaces)。在服务器工作区中,未签出的文件会在工作区中读取,以防止您在未先告诉 TFS 您将更改它们(签出)的情况​​下在本地进行更改。由于您的构建通常不会在您的工作区中执行任何源代码控制操作,因此当您复制它们或将它们作为工件发布时,部分或所有文件仍保持只读状态。

如果您将项目从 TFS 复制到另一个位置,这些只读标志也会被复制。然而,这很容易通过使用attrib -r 在从构建发布工件之前或在将文件复制到目标计算机之前(或之后)清除只读标志来解决。有关递归等更多选项,请参阅attrib 文档。

【讨论】:

  • 使用从文件中删除只读属性的相同原理完成。对于 robocopy,争论是 /A-:R
【解决方案2】:

当您在 IIS 6.0 中将文件夹路径设置为网站的物理路径时,您会看到该文件夹​​自动设置为只读。

您可以在文件夹属性中删除此文件夹的只读设置。如果要删除文件夹的只读设置。在Windows Machine File Copy step 中,您需要提供一个帐户,该帐户是目标机器的管理员。

【讨论】:

    【解决方案3】:

    问题已通过添加 Windows robocopy 命令的一项属性得到解决。

    /A-:R :从复制的文件中删除只读属性。

    "/A" : 属性

    “-”:删除

    "R" : 只读属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 2016-11-22
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多