【问题标题】:Files marked as readonly during build在构建期间标记为只读的文件
【发布时间】:2010-09-09 20:11:19
【问题描述】:

似乎当 TFS 进行构建时,当它创建构建目录并将文件从源中拉下时,它会将所有源文件标记为只读。这导致我们拥有的 BizTalk 解决方案出现问题,它看起来像在构建时 biztalk 生成/编辑用于映射文件的 cs 类,这与构建期间获取和未经授权的访问异常的文件类型相同,如果它是标记为只读。但是对于我的生活,无法弄清楚如何改变 TFS 的这种行为。有什么想法吗?

【问题讨论】:

    标签: tfs biztalk biztalk-2009


    【解决方案1】:

    这些文件被标记为只读,因为它正在从 TFS 获取最新版本。如果 BizTalk 在编译期间生成文件,您可以不将该文件包含在源代码管理中,也可以删除该文件的只读标志。

    您可以通过编辑构建过程模板并添加一个 InvokeProcess 活动来执行 attrib -r 命令来删除 TFS 2010 中的标志。

    有关如何将 InvokeProcess 添加到构建过程模板的更多信息,请参阅http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx

    【讨论】:

    • 我正在使用 TFS2013 update 4 和 VS2013 update4。我正在使用未更改的 DefaultTemplate.xaml 构建模板。我没有签入任何 .xsd.cs 文件。我的经验是 TFS 构建代理将文件夹标记为只读,这会阻止 xsd.cs 作为构建的一部分创建,这会导致构建失败。如果我从文件夹中删除只读标志,那么我可以在构建服务器上手动运行成功构建 - 但在以下自动构建期间会添加回此标志。
    【解决方案2】:

    这是正常行为。但是,如果您有一些需要可写文件的自动生成(即 minification/grunt ...)进程,请更新您的项目文件并在预构建进程中使每个文件可写。

    <Target Name="BeforeBuild">
    <Exec Command=“attrib -R $(SolutionRoot)\myFile.ext“ />
    </Target>
    

    我知道已经晚了,但希望这会帮助有人来这里。

    参考来自: https://benoit808.wordpress.com/2007/10/30/changing-a-files-attribute-from-a-msbuild-script/

    【讨论】:

      【解决方案3】:

      不要将 .cs 文件签入到 biztalk 项目的源代码管理中。转到源代码管理中的这些文件并删除它们。

      【讨论】:

        【解决方案4】:

        在我的情况下,我检查了我的本地文件并且它们具有只读属性,所以我在本地删除了该属性,再次签入文件并且一切正常:

        【讨论】:

          猜你喜欢
          • 2020-11-24
          • 2012-05-06
          • 2012-02-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-10
          • 2017-08-15
          • 1970-01-01
          相关资源
          最近更新 更多