MSBuild 运行缓慢从 PowerShell 脚本 (Visual Studio 2019) 调用



我最近设置了一个新的 TFS 生成服务器,并且正在调查生成过程中的一些延长时间段。 其中一个时期是重新编译我们的硒测试.dll。 首先,通过 MSBuild 还原包,这很好。 然后,脚本挂起大约 10 分钟,而实际编译.dll。

这在我们的Visual Studio 2017 Build Server上运行良好(我相信需要几秒钟的时间来编译(,但在2019年似乎有问题。

这是代码。 我是否缺少一两个 MSBuild 参数?

$msbuild = """C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentBinMSBuild.exe"""
# Rebuild the Test source .dll...
Write-Host "********** Running UI Tests **********"
# Restore Selenium packages...
Write-Host "********** Restoring Selenium Packages **********"
&"C:Nuget.exeNuget.exe" restore  $sourceDevelopment12.0WebMyAppWebMyCo.SeleniumUITestMyCo.SeleniumUITest.sln -DisableParallelProcessing
Write-Host "********** Selenium Packages Restored **********"
# Changes for new MSBuild....
$projfile = "$sourceDevelopment12.0WebMyAppWebMyCo.SeleniumUITestMyCo.SeleniumUITest.sln"
try
{
start-process $msbuild -ArgumentList @($projfile,'/t:Rebuild','/p:configuration=Release') -Wait
Write-Host "********** Selenium .dll compiled successfully! **********"
}
catch
{
Write-Host $_.Exception.Message
exit 1
}

任何帮助感谢! 如果这应该放在PowerShell论坛中,请告诉我。 我认为TFS/MSBuild是正确的地方,因为我希望它只是一个参数或调用调整。

MSBuild Run Slow Call from PowerShell Script (Visual Studio 2019(

州:

(对于运行效率这个问题,很难给出准确的答案。造成这个问题的原因有很多,其中大部分与环境有关,使我们难以重现它。因此,我们无法给出此问题的直接正确答案,我们只能为您提供一些故障排除。为了避免在往返评论中失去联系,我将这些疑难解答作为答案而不是评论发布。

首先,将脚本与 Azure DevOps 服务而不是 TFS生成服务器 2019 一起使用,以检查此问题是否仍发生在 Azure DevOps 服务上,如果此问题也发生在 Azure DevOps 服务上,这意味着此问题不应与 TFS 相关,而与 MSBuild/environment/powershell 脚本相关。

其次,使用内置任务nuget restore和msbuild任务而不是powershell脚本,检查是否有此问题,如果也有此问题,此问题应与脚本无关。如果没有,此问题应与脚本有关。我们需要检查此脚本是否需要更新,因为我们使用不同的 TFS 服务器。

第三,检查Visual Studio 2017 Build Server和Visual Studio 2019 Build Server中的powershell版本,确保它们使用相同的版本。

如果仍然找不到原因,可以启用调试日志并将有关挂起的日志共享给我们,以便我们获取更多信息。

希望这有帮助。

我将 MSBuild 脚本化任务移到生成定义任务以消除缓慢。 当通过PowerShell脚本调用MSBuild时,我没有确定挂起的原因。

后来尝试通过 .proj 文件发布的问题解决了,当时我注意到我使用的是可视化构建任务而不是更合适的 MSBuild 任务。

使用 MSBuild 步骤时需要注意的一件事。 如果指向 .proj 文件并针对任何 CPU 进行编译,请在任务中将其设置为 AnyCPU,中间没有空格。

最新更新