【问题标题】:Trying to run corflags from TFS Build 2010尝试从 TFS Build 2010 运行 corflags
【发布时间】:2010-08-17 23:14:56
【问题描述】:

我在 TFS 2010 中使用 InvokeProcess 活动来尝试在构建的 exe 上运行 corflags 应用程序。

C:\Builds\4\testing\Sources\BuildAssets\corflags.exe C:\Builds\4\testing\Binaries\Executable.exe /32bit+

但是我收到以下消息:

corflags : 错误 CF001 : 无法打开文件进行写入

我正在本地机器上运行 TFS 构建代理,因为我目前处于测试阶段,当我从命令行运行完全相同的命令时,corflags 应用程序完成且没有错误。

任何想法将不胜感激。

【问题讨论】:

标签: tfs tfsbuild corflags


【解决方案1】:

我不熟悉具体情况,但有一些大致的想法:

以谁的身份运行构建?该用户是否有权访问输出路径?

另一个考虑因素是:构建是否在尝试执行您的命令之前完成?

尝试将命令更改为非常简单的命令,例如 键入“OutputFile” - 这会遇到同样的问题吗?如果是这样,这是一个权限/时间问题。如果不是,这是特定的命令 - 但至少我们会缩小问题的范围。

【讨论】:

  • 构建正在我的帐户下运行,该帐户具有对目录的完全访问权限。在编译完成并设置为 BuildPhaseStatus.Complete 后,我会执行所有后期构建步骤。我能够实现其他命令,例如创建目录。 Ewald Hofman 在上面已经回答并提到了两个文件的只读状态。 Corflags 是源的一部分(仅是为了简化将来扩展构建代理),但我试图更改标头的 exe 不是只读的。谢谢。
  • 针对 .exe 的任何 [写入] 操作是否会发生此错误,还是仅针对 corflags?
  • 除了构建过程创建 exe 之外,corflags.exe 是唯一尝试修改我的输出的其他应用程序。
  • 我知道这在正常过程中是正确的,但我要确定的是它是 corflags 还是 exe 本身的问题 - 所以你可以尝试更改命令来删除它吗corlfags'ing 呢?这也失败了吗?如果是这样,它的权限/类似。如果不是,这与corflags有关。目前我们不知道是文件问题还是您尝试对其进行的操作。
  • 原来是输出目录的共享没有设置为允许正确的用户执行操作。毕竟权限。非常感谢。
【解决方案2】:

我也不知道 corflags,但它正在使用工作区中的文件(从版本控制下载的文件)。默认情况下,此文件上有一个只读标志。

所以如果你需要这个文件是可写的:
1) 如果您在版本控制中需要此文件,请签出该文件,然后再次签入 (tf checkout / tf checkin)
2) 如果文件是由应用程序创建的,则从版本控制中删除文件
3) 使用 attrib 命令删除只读标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-21
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 2013-12-12
    相关资源
    最近更新 更多