我在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已关闭?任何解决方案?
答案 0 :(得分:2)
csc
标志指定不同的输出位置,否则 /out
将始终将输出写入当前工作目录。
除非您指定/out
(或通过ProcessStartInfo.WorkingDirectory
更改工作目录),否则如果您没有对当前工作目录的写访问权限,它将无效。如果您对写入工作目录感到满意,那么您应该在那里查找结果。
此外,正如Hans Passant在评论中所指出的,您应该考虑其他编程方式来生成代码:
CSharpCodeProvider