带参数的csc.exe无法从控制台应用程序编译/工作

时间:2014-02-10 11:10:55

标签: c# csc

我在C:\ kaannos \ main.cs中获得了main.cs文件。

我的字符串文件路径:

this.filePath = @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe";

        startInfo.FileName = filePath;            
        startInfo.Arguments = "C:\\kaannos\\main.cs";            
        // startInfo.UseShellExecute = false;
        Process.Start(startInfo);

我的控制台应用程序显示在csc.exe之后,但它只是弹出并自行关闭。我检查了文件夹,没有main.exe,所以它没有编译它。如果我从命令提示符运行此命令:csc C:\ kaannos \ main.cs它确实有效。我关闭了我的UAC所以我不需要以管理员身份运行命令提示符来测试它,还因为我找不到以管理员身份运行进程的方法。但似乎情况并非如此,因为UAC已关闭?任何解决方案?

1 个答案:

答案 0 :(得分:2)

除非您使用csc标志指定不同的输出位置,否则

/out将始终将输出写入当前工作目录。

除非您指定/out(或通过ProcessStartInfo.WorkingDirectory更改工作目录),否则如果您没有对当前工作目录的写访问权限,它将无效。如果您对写入工作目录感到满意,那么您应该在那里查找结果。

此外,正如Hans Passant在评论中所指出的,您应该考虑其他编程方式来生成代码: