为什么我的自动化 Visual Studio 构建突然停止构建?
Why did my automated Visual Studio builds suddenly stopped building?
我有一个 Visual Studio 项目,我已经在 GitLab CI 中自动构建了很长一段时间,没有任何问题。我只是通过以下方式构建解决方案:
devenv.exe MySolution.sln /Build "Release|x64"
今天,构建突然和静默开始失败。我根本没有做任何更改,构建命令也没有提供任何输出。这是怎么回事?
Visual Studio 构建突然开始失败的最可能原因是过期的Visual Studio 许可证。
解决静默构建失败
您没有看到任何输出的原因是您正在调用 devenv.exe
,它不是为输出到标准输出而设计的,因为它是桌面应用程序。
在您的构建脚本中,您将要使用 devenv.com
。执行此操作后,您将看到以下输出:
Microsoft Visual Studio 2019 Version 16.8.3.
Copyright (C) Microsoft Corp. All rights reserved.
The license for Visual Studio has expired.
The evaluation period for this product has ended.
正在解决过期的许可证
在您的构建机器上,打开 Visual Studio 并检查许可证是否仍然有效。但是请注意,您需要使用构建 运行 用户使用的相同用户帐户启动 Visual Studio。
对于 Windows 机器上的 GitLab CI,它 运行 宁作为服务,Visual Studio 将 运行 作为 SYSTEM
用户。所以你也需要作为 SYSTEM
用户开始。
为此,请使用 psexec
。例如:
PsExec.exe -si "C:\Program Files (x86)\Microsoft Visual Studio19\Community\Common7\IDE\devenv.com"
您很可能会看到一个对话框,要求您登录以更新您的许可证。完成后,您的构建将再次 运行 顺利进行。
我有一个 Visual Studio 项目,我已经在 GitLab CI 中自动构建了很长一段时间,没有任何问题。我只是通过以下方式构建解决方案:
devenv.exe MySolution.sln /Build "Release|x64"
今天,构建突然和静默开始失败。我根本没有做任何更改,构建命令也没有提供任何输出。这是怎么回事?
Visual Studio 构建突然开始失败的最可能原因是过期的Visual Studio 许可证。
解决静默构建失败
您没有看到任何输出的原因是您正在调用 devenv.exe
,它不是为输出到标准输出而设计的,因为它是桌面应用程序。
在您的构建脚本中,您将要使用 devenv.com
。执行此操作后,您将看到以下输出:
Microsoft Visual Studio 2019 Version 16.8.3.
Copyright (C) Microsoft Corp. All rights reserved.
The license for Visual Studio has expired.
The evaluation period for this product has ended.
正在解决过期的许可证
在您的构建机器上,打开 Visual Studio 并检查许可证是否仍然有效。但是请注意,您需要使用构建 运行 用户使用的相同用户帐户启动 Visual Studio。
对于 Windows 机器上的 GitLab CI,它 运行 宁作为服务,Visual Studio 将 运行 作为 SYSTEM
用户。所以你也需要作为 SYSTEM
用户开始。
为此,请使用 psexec
。例如:
PsExec.exe -si "C:\Program Files (x86)\Microsoft Visual Studio19\Community\Common7\IDE\devenv.com"
您很可能会看到一个对话框,要求您登录以更新您的许可证。完成后,您的构建将再次 运行 顺利进行。