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 回答