2017-10-17 12 views
0

csc.exe 및 .rsp 파일을 사용하여 프로젝트를 만들려고하지만 오류가 계속 발생합니다. CS0116 : 네임 스페이스에 필드 나 메서드 같은 멤버를 직접 포함 할 수 없습니다. 문제를 해결하려면, 내가 명령 줄에서 지금까지 가장 간단한 프로그램 ....rsp 파일을 사용하여 빌드 할 때 오류 CS0116이 발생하는 이유는 무엇입니까?

class Program 
{ 
    public static void Main() 
    { 

    } 
} 

을했다, 나는 명령을 실행

Test.rsp이

/nologo 
/target:exe 
/platform:x86 
/out:"Test.exe" 
"Test.cs" 

과 같은

"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe" Test.rsp 

Test.cs를 직접 컴파일하면이 오류가 발생하지 않습니다. 예를 들어 명령 줄에서이 명령을 실행하면 ...

"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe" /target:exe /platform:x86 /out:"Test.exe" "Test.cs" 

"프로그램"이 성공적으로 만들어집니다.

그렇다면이 오류의 원인이되는 .rsp 파일을 사용하여 컴파일하는 이유는 무엇입니까?

답변

2

컴파일러가 파일을 C#으로 해석하려고합니다. 응답 파일을 사용하려면 컴파일러가 코드 파일이 아니라 빌드 파일임을 알릴 필요가 있습니다. the docs에서 :

에서 @ 옵션을 사용하면 예를 들어

를 컴파일 컴파일러 옵션과 소스 코드 파일이 포함 된 파일을 지정할 수 있습니다

"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe" @Test.rsp 
+0

감사합니다! '@'를 추가했습니다. 모두 잘 작동합니다. – Tester101