TFS无法获取所有解决方案文件

3
我正在从2013年的xaml转换到tfs 2017版本。我有一个项目,其中我正在构建一些解决方案文件、dbproj文件和sqlproj文件。然而,目前只有一个单一的解决方案文件可以正常工作。问题似乎在于我的“GetSources”任务上,我已经正确映射了所有内容,但是我只看到了一个正常工作的解决方案。我将我的GetSources设置为清除所有构建目录。是否有任何原因导致GetSources任务无法工作?
编辑:
我已经远程连接到我们的构建服务器,并下载了一个解决方案的文件。另外两个解决方案的文件似乎部分存在。工作区也已经创建。当我运行构建时,日志中没有错误或警告。我对我正在尝试构建的每个解决方案都有以下记录:
##[command]tf vc workfold /map /workspace:ws_31_2 $path E:\agent /collection:http://server/tfs/DefaultCollection/ /loginType:OAuth /login:.,******** /noprompt
它只完全"理解"了一个解决方案和其他两个解决方案的一部分。除了我添加的一些小片段以考虑它们的位置之外,日志中甚至没有提到其他解决方案的任何变体。我已经尝试过调试模式,但没有发现任何问题。
当我尝试运行实际构建时,我会收到这个错误消息: MSBUILD:错误 MSB1009:项目文件不存在。 - 因为它没有获取源来开始构建。

你能远程连接到构建服务器并查看下载的源代码吗?创建了哪些工作区? - DaveShaw
所以你的问题是TFS只能找到一个解决方案文件?构建日志是否显示任何错误/警告?也许您的解决方案路径有问题-您可以提供一下吗?您提供的每一个细节都将有助于我们识别问题。因此,如果您可以通过编辑帖子将答案添加到评论中,那将是很好的。欢迎来到StackOverflow! - Tobias Theel
你在这方面遇到了任何错误吗?单一解决方案的构建结果如何?请分享您获取源代码步骤的日志,同时启用详细调试模式。有许多可能性,例如权限、路径过长等等,如果没有日志信息或错误,很难缩小问题范围。 - PatrickLu-MSFT
是的,我已经远程连接并下载了一个解决方案的文件。另外两个解决方案的文件似乎只有部分存在。当我运行构建时,日志中没有错误,也没有警告。对于我正在尝试构建的每个解决方案,我的日志中都有这个:##[command]tf vc workfold /map /workspace:ws_31_2 $path E:\agent /collection:http://server/tfs/DefaultCollection/ /loginType:OAuth /login:.,******** /noprompt 它只完全“获取”一个解决方案和另外两个解决方案的一部分。除了我添加的那个小片段之外,其他解决方案甚至没有在日志中提到。 - SomewhatStudent
你能分享一下你的解决方案文件夹结构和工作空间设置以供构建定义使用吗? - Eddie Chen - MSFT
1个回答

3
答案已经找到了。这是一个权限错误。对我来说很奇怪的是,日志中没有报告错误,但我能够在“安全”->“版本控制”下更改权限,并从另一个文件夹继承权限以访问我想要访问的文件夹。最初设置为不继承。

2
没有产生错误,因为这可能会提供有关存储库布局的其他信息,而没有读取访问权限的人不应该能够看到。也就是说,如果出现像“无法读取secretfile.cs”这样的错误,则存在信息泄露,并且没有权限的人可以发现secretfile.cs的存在。TFS方法增加了安全性,尽管承认使故障排除更加困难。 - Edward Thomson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接