繁体   English   中英

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

[英]csc.exe with arguments does not compile/work from console application

我在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已关闭? 有什么办法吗?

除非您使用/out标志指定其他输出位置,否则csc始终会将输出写入当前工作目录。

因此,如果您没有对当前工作目录的写访问权,它将不起作用,除非您指定/out (或通过ProcessStartInfo.WorkingDirectory更改工作目录)。 如果您满意将其写入工作目录,那么应该在那寻找结果。

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

  • CSharpCodeProvider
  • Roslyn API (当前在CTP中使用),但它是下一代托管C#编译器,它将在将来成为Visual Studio的基础。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM