繁体   English   中英

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

[英]MSBuild Running Slow Called from PowerShell Script (Visual Studio 2019)

我最近设置了一个新的 TFS 构建服务器,我正在研究构建过程中的一些延长时间。 其中之一是重新编译我们的 Selenium 测试 .dll。 首先,通过 MSBuild 恢复包,这很好。 然后,脚本挂起大约 10 分钟,而 .dll 被实际编译。

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

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

$msbuild = """C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe"""

# Rebuild the Test source .dll...
Write-Host "********** Running UI Tests **********"

# Restore Selenium packages...
Write-Host "********** Restoring Selenium Packages **********"
&"C:\Nuget.exe\Nuget.exe" restore  $source\Development\12.0\Web\MyAppWeb\MyCo.SeleniumUITest\MyCo.SeleniumUITest.sln -DisableParallelProcessing
Write-Host "********** Selenium Packages Restored **********"

# Changes for new MSBuild....
$projfile = "$source\Development\12.0\Web\MyAppWeb\MyCo.SeleniumUITest\MyCo.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 将是正确的地方,因为我希望它只是一个参数或调用调整。

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

状态:

(对于运行效率这个问题,很难给出准确的答案。问题的原因有很多,大部分与环境有关,我们很难重现,所以无法给出直接正确的答案针对这个问题,我们只能给你一些疑难解答。为了避免在往返评论中失去联系,我将那些疑难解答作为答案而不是评论发布。)

首先,使用Azure devops服务的脚本而不是TFS Build Server 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 脚本任务移出到 Build Definition 任务以消除缓慢。 当通过 PowerShell 脚本调用 MSBuild 时,我没有确定挂起的原因。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM