Powershell没有将c#代码编译成.exe

时间:2013-12-15 15:35:51

标签: c# .net powershell

我有一些代码没有编译到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

2 个答案:

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