0

我在Visual Studio 2012生成中遇到麻煩,運行速度非常慢。它前段時間運行良好,我不知道發生了什麼。我啓用診斷生成輸出,並且看到這個:由於預編譯和生成後事件,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 

的預生成事件:

​​

腳本文件:

# 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始終啓動,不知道爲什麼。任何幫助將不勝感激,並歡迎任何想法!

P.S.我們團隊的其他人也沒有這樣的問題,所以這絕對是我的一面。以下是完整的生成日誌:

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) 
+0

有沒有人曾經找出適當的解決方案呢?在生成後事件命令行中運行npm命令時遇到類似問題。 –

回答

-1

安裝PowerShell 3.0,重新安裝VS 2012,沒有什麼幫助。所以我剛剛格式化磁盤C和安裝Windows 8,現在它工作很好:)

+0

會不會加速什麼?這不是一個合適的解決方案... –

1

我建議你添加一些簡單的跟蹤來試着找出問題所在。

但是把Write-Host "Checkpoint 1 $(get-date -DisplayHint Time)"放在腳本 的開頭,然後將其他人放在關鍵部分之間。

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

值得一提的是,我們在MSBuild/VS項目中使用了powershell腳本,並沒有這種問題。

相關問題