3

C# ソースをコンパイルする msbuild を使用して PHP 経由で実行可能ファイルをコンパイルしようとしています。スクリプトの大部分は作成中の実行可能ファイルに依存しているため、msbuild がソースをコンパイルするのを待つ必要があります。

while ループを何も配置しない場合、正常にコンパイルされ、実行可能ファイルが作成されますが、問題はスクリプトの残りの部分が高速に実行され、最終結果が正しくないことです。

だから現時点ではこれを使用しています..

exec('C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe C:\Users\Administrator\AppData\Roaming\Compile\Myprogram\Myprogram.sln /p:Configuration=Release');

while (!file_exists('C:\Users\Administrator\AppData\Roaming\Compile\Myprogram\bin\Release\Myprogram.exe')) sleep(1);

ただし、このシナリオでは、exec コマンドがまったく実行されないかのようです。無限ループに陥り、最終的にタイムアウトになり、exe がコンパイルされなくなります。

これについての適切な方法に関する提案はありますか?

4

1 に答える 1

0

次のように実行してみてください。

$output = array();
$cmd = 'C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe C:\Users\Administrator\AppData\Roaming\Compile\Myprogram\Myprogram.sln /p:Configuration=Release  && exit';
exec($cmd, $output);   
于 2013-08-26T19:10:55.047 に答える