在以下场景中遇到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比较陌生,所以任何关于现在看哪里的指针都会有很大的帮助。
UPDATE - 从那时起发现TFS CI使用的源文件的工作目录没有将MyRepository.cs文件拉入其中,并且没有提取最新的(签入集)版本的.csproj文件(看起来仍然是它的旧主干版本)。这似乎很奇怪,因为错误消息(上面)暗示它获取.csproj但没有获取MyRepository.cs文件。
答案 0 :(得分:1)
事实证明这是因为TFS构建代理使用的帐户没有对分支(或任何其他权限)的检索权限。所以我更新的文件和从分支合并到trunk的新文件没有出现在trunk构建中。有点恼人,TFS没有明确地抱怨这个,而是只是去了一个头并使用旧的主干文件(或者如果它确实抱怨我在日志中找不到它。)
摘要:在分支上授予构建代理帐户权限可以解决问题。
答案 1 :(得分:0)
好吧,错误表明csproj文件确实对其进行了更改,因为编译正在查找该文件。但是,它还表示实际的cs文件不是签入的一部分,或者它被签入的位置不同于csproj文件所期望的位置。另一个可能的解决方案(如果您已经验证了其他两个)是,您的构建工作区不会有包含Repositories文件夹的映射。