TFS(本地)生成代理(本地)作为服务运行时找不到Visual Studio 2017功能

时间:2019-01-22 02:06:11

标签: tfs visual-studio-2017 continuous-integration continuous-deployment

Microsoft Visual Studio Team Foundation Server-版本16.131.28106.2
Agent.OS Windows_NT
Agent.OSVersion 6.3.9600
Agent.2.136.1版

我的TFS构建代理在作为服务运行时(在我的主域上的服务帐户下)未将Visual Studio 2017(Enterprise)标识为功能。相同的代理确实将Visual Studio 2015标识为一种功能,同时在与上述相同的帐户下作为服务运行。

我已经更新了代理,删除并重新配置了相关的构建代理,重新启动了代理服务,并重新启动了操作系统。我没有注意到,当首次配置此代理时,该代理在运行配置脚本的个人下运行时会短暂地识别该功能,但是当该代理切换到在服务帐户下运行时,VS2017能力消失了。

注意到这一点之后,我为有问题的服务帐户提供了Windows根安装目录'Program Files(x86)以及与VS2017安装相关的所有目录和文件的读取和执行特权,但这无济于事。

如果我以交互方式运行其他构建代理(与上面列出的版本相同),则VS2017被标识为一种功能,因此我假设我要尝试使用的服务帐户需要做一些事情

为了很好地衡量,在Visual Studio构建任务中,我尝试使用“最新”选项和“ Visual Studio 2017”选项。我还尝试为此任务在MSBuild参数中添加'/p:VisualStudioVersion=15.0'。

更新:我还尝试直接在“用户定义”部分中明确指定功能,并尝试通过使用代理主机上的环境变量来添加功能。

1 个答案:

答案 0 :(得分:1)

您是否已确保将服务帐户用户添加为代理正在运行的池上的角色服务帐户? 还要确保服务帐户能够在这些本地安全策略中执行以下操作:“作为服务登录”,“充当操作系统的一部分”,“管理审核和安全日志”

我不能说这将能够解决您的问题,但我只知道这些在我处理的设置中是必需的。

您也可以为了方便快捷地测试,在计算机上以管理员身份添加服务帐户,然后测试是否找到VS 2017。如果是这样,则说明您需要设置一些特定的组和权限。