1

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

2012 年 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)
4

2 に答える 2

1

問題がどこにあるかを試して解決するために、いくつかの簡単なトレースを追加することをお勧めします。

ただしWrite-Host "Checkpoint 1 $(get-date -DisplayHint Time)"、スクリプトの先頭に権利を置き、次に他の人を主要なセクションの間に置きます。

私の推測では、問題はGet-Processが予想よりも長くかかることです。1つの可能性は、デフォルトのプロファイル/モジュールのロードに時間がかかることです。

その価値については、MSBuild / VSプロジェクトでPowerShellスクリプトを使用しており、この種の問題はありません。

于 2012-11-12T09:04:10.853 に答える
-1

Installed PowerShell 3.0, reinstalled VS 2012, nothing helped. So I just formatted disk C and installed Windows 8, now it works great :)

于 2012-11-20T12:03:34.587 に答える