2014-02-10 2 views
1

C : \ kaannos \ main.cs에 main.cs 파일이 있습니다.인수가있는 csc.exe는 콘솔 응용 프로그램에서 컴파일/작동하지 않습니다.

내 문자열 파일 경로 :

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를 해제했습니다. 하지만 UAC가 꺼져서 그렇지 않은 것 같습니다. 어떤 해결책?

+0

작업 디렉토리는 무엇입니까? 그것은 그 디렉토리에 결과를 쓰려고 노력할 것입니다 ... –

+0

와우 대단해요, 다른 곳에서는 보았지만 작업 디렉토리에서는 보지 못했습니다. c : \ Windows \ Microsoft.NET \ Framework \ Framework \ v4.0.30319 명령 프롬프트에서 \ like를 시작합니다. 답을 쓰고 정확한 표시를하십시오! 감사! –

+0

http://msdn.microsoft.com/en-us/library/650ax5cx%28v=1.1%%29.aspx –

답변

2

csc/out 플래그가있는 다른 출력 위치를 지정하지 않는 한 항상 출력을 현재 작업 디렉토리에 씁니다.

/out을 지정하거나 ProcessStartInfo.WorkingDirectory을 통해 작업 디렉토리를 변경하지 않으면 현재 작업 디렉토리에 대한 쓰기 권한이없는 경우 작동하지 않습니다. 작업 디렉토리에 글을 쓰는 것이 만족 스럽다면 결과를 찾아야합니다. 의견 한스 옆모습에서 언급 한 바와 같이

또한, 당신은 생성 코드의 다른 프로그래밍 방법을 고려해야합니다

  • CSharpCodeProvider
  • CTP 현재이지만, 차세대 어떤이다 Roslyn API, 미래에 Visual Studio의 기초가 될 관리되는 C# 컴파일러입니다.
+0

대단히 감사합니다. –