0

コードサンプルの話:vbスクリプトを使用して自動テストビルドを実行していますが、32ビットと64ビットのWindows7では次の行の実行が異なります。

CmdLine ("cmd /c C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\Users\tester_kafka\Documents\VisualStudio2012\Projects\CFX_Manager_UITest\CFX_Manager_UITest.sln")

ここで、CmdLineは次のような関数です。

Function CmdLine(strCommand) 
Set WshShell = CreateObject("WScript.Shell") 
Set WshShellExec = WshShell.Exec(strCommand) 
Do While WshShellExec.Status = 0
WScript.Sleep 100 
Loop 
End Function

32ビットのWindows7システムでは、ビルドが完了し、vbスクリプトが完了します。64ビットのWindows7システムでは、cmdウィンドウは手動で閉じるまで開いたままになり、その後スクリプトは完了に進みます。もちろん、目標は、スクリプトを64ビットで自動化して自動的に処理することです。

行に&exitを追加し、/ nr:falseをMSBuild.exeに切り替えて引用符をいじってみました(率直に言って、他に何を試すべきかわかりません...)。もっと簡単なことをするべきですか?そして、なぜOSがそれほど大きな違いを生む必要があるのでしょうか。

解決策でなくても、どんな情報でも歓迎します。皆さん、ありがとうございました。

4

1 に答える 1

0

これを試して:

Function CmdLine(strCommand) 
Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run strCommand, , true
End Function
于 2013-03-21T18:43:42.363 に答える