我正在尝试使用编译我的 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 永远不会被编译。
关于解决此问题的正确方法有什么建议吗?