【发布时间】:2012-11-18 22:40:13
【问题描述】:
在以下场景中遇到 TFS 和 TFS CI 问题(我已对其进行了简化,尽管它本质上是相同的问题):
- 我有一个主干(一个 VS 解决方案中的一组 csprojs)
- 我有一个分支(从树干上取下来) -- 在这个分支中,我创建了一个新文件,比如“MyRepository.cs”
- 我将分支合并回主干 -- 一切似乎都很好......(在待定更改中,文件被标记为“合并,分支”)
- 我将合并的待处理更改签入到主干
- 这将启动 TFS 中的门控签入
- 这失败了,我从 TFS CI 收到一条消息:
“CSC:找不到源文件'Repositories\MyRepository.cs'”
“TF270015:‘MSBuild.exe’返回了意外的退出代码。预期为‘0’;实际为‘1’。”
当我签入 MyRepository.cs 文件时,我显然在 csproj 文件中签入了包含 MyRepository.cs 的程序集。这个 csproj 具有包含新 cs 文件的行,即:
<Compile Include="Repositories\MyRepository.cs" />
所以问题是我不明白为什么 TFS 抱怨 .cs 文件不存在,即使我正在签入它并且它包含在 csproj 文件中。
我怀疑我从分支合并到主干这一事实导致了问题,但我不知道为什么。我对 TFS CI 比较陌生,所以任何关于现在去哪里的指针都会有很大的帮助。
更新 - 此后发现 TFS CI 使用的源文件的工作目录没有将 MyRepository.cs 文件拉入其中,也没有拉入最新(签入集)版本的.csproj 文件(看起来仍然是旧的主干版本)。这似乎很奇怪,因为错误消息(上图)暗示它获取了 .csproj 但没有获取 MyRepository.cs 文件。
【问题讨论】:
标签: visual-studio-2010 tfs msbuild