簡體   English   中英

由於發生預生成和生成后事件,Visual Studio 2012的生成緩慢

[英]Visual Studio 2012 slow build because of pre-build and post-build events

我在使用Visual Studio 2012構建時遇到麻煩,它運行非常慢。 前段時間效果很好,我不知道發生了什么。 我啟用了診斷構建輸出,並看到了以下內容:

3>Target Performance Summary:
...
3>     1093 ms  ResolveComReferences                       1 calls
3>     2741 ms  ResolveAssemblyReferences                  1 calls
3>     3725 ms  CoreCompile                                1 calls
3>    314117 ms  PreBuildEvent                              1 calls
3>
3>Task Performance Summary:
...
3>     1092 ms  ResolveComReference                        1 calls
3>     2741 ms  ResolveAssemblyReference                   1 calls
3>     3724 ms  Csc                                        1 calls
3>    314117 ms  Exec                                       1 calls
3>
3>Build succeeded.
3>
3>Time Elapsed 00:05:22.93

預構建事件:

Powershell -File "$(ProjectDir)Prepare4Tests.ps1"

腳本文件:

# Close all IE instances
if($env:COMPUTERNAME -ne 'W8ALEXAB')
{
    Get-Process | Where { $_.Name -Eq 'iexplore' } | Kill;
}

# Delete test files generated by agent that are more than 7 days old.
$paths = @("C:\Users\tsservice\AppData\Local\VSEQT\QTAgent", "C:\Windows\ServiceProfiles\NetworkService\AppData\Local\VSEQT\QTController");
foreach($path in $paths)
{
    if(Test-Path $path)
    {
        $items = @(Get-ChildItem $path | Where {$_.lastwritetime -lt (Get-date).AddDays(-8)});
        for($i = 0; $i -lt $items.Length; $i++)
        {
            $itemPath = join-path $path  $items[$i] -Resolve;
            "Deleting item: " + $itemPath;
            Remove-Item $itemPath -force;
        }
    }
}

另一個包含執行構建后事件的項目的相同問題,該事件執行另一個powershell腳本。

如果我直接從命令提示符啟動腳本,它將運行很快,沒有問題。 同樣在重建時,netstat.exe總是啟動,不知道為什么。 任何幫助將不勝感激,任何想法都歡迎!

PS另外,我們團隊中的其他人也沒有這樣的問題,所以這絕對是我這邊的事情。 這是完整的構建日志:

https://gist.github.com/4064296

12/12/11更新:正如我之前說過的,試圖放置檢查點,powershell腳本本身正在發揮作用

3>  Task Parameter:Command=Powershell -File "D:\Projects\NGNMS\Dev\NMSClient\NMSClient.UT\Prepare4Tests.ps1" (TaskId:72)
3>  Powershell -File "D:\Projects\NGNMS\Dev\NMSClient\NMSClient.UT\Prepare4Tests.ps1" (TaskId:72)
3>  Checkpoint 1 11/12/2012 13:08:07 (TaskId:72)
3>  Checkpoint 2 11/12/2012 13:08:07 (TaskId:72)
3>  Checkpoint 3 11/12/2012 13:08:07 (TaskId:72)
3>Done executing task "Exec". (TaskId:72)

我建議您添加一些簡單的跟蹤以嘗試找出問題所在。

但是在腳本開始處放一個Write-Host "Checkpoint 1 $(get-date -DisplayHint Time)" ,然后將其他放置在關鍵部分之間。

我的猜測是,問題在於Get-Process花費的時間比您預期的要長。 一種可能是加載默認配置文件/模塊會花費很長時間。

對於什么是價值,我們的MSBuild / VS項目中使用PowerShell腳本並沒有這種問題。

安裝了PowerShell 3.0,重新安裝了VS 2012,沒有任何幫助。 因此,我只是格式化了磁盤C並安裝了Windows 8,現在它的效果很好:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM