我有一些代码没有编译到PowerShell中的.exe文件,
$csharp = '#CSharp code goes here'
$tmpFile = [IO.Path]::GetTempFileName() + ".cs" # Creates Temp file
Out-file -FilePath $tmpFile -InputObject $csharp # sets content
Start-Process -FilePath C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe -ArgumentList "/out:Launcher.exe" # Starts csc
当脚本加载时,会出现一个csc.exe弹出窗口,该弹出窗口会在几毫秒内关闭。 有人可以帮忙吗?谢谢,CollinScripter
答案 0 :(得分:1)
为防止出现新窗口,您可以使用NoNewWindow
开关:
Start-Process -FilePath C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe -NoNewWindow -ArgumentList "/out:Launcher.exe"
请注意,您当前的命令未将源文件传递给编译。
答案 1 :(得分:1)
添加输入后效果更佳。我使用您的代码段生成了fatal error CS2008: No inputs specified
。
$csharp = '#CSharp code goes here'
$tmpFile = [IO.Path]::GetTempFileName() + ".cs" # Creates Temp file
Out-file -FilePath $tmpFile -InputObject $csharp # sets content
Start-Process -FilePath C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe -ArgumentList "/addmodule:$tmpFile /out:Launcher.exe" # Starts csc