2017-10-17 57 views
0

我想使用csc.exe和.rsp文件來構建一個項目,但我一直收到錯誤CS0116:命名空間不能直接包含成員,如字段或方法。要解決問題,我做了有史以來最簡單的程序......爲什麼在使用.rsp文件構建時出現錯誤CS0116?

class Program 
{ 
    public static void Main() 
    { 

    } 
} 

在命令行中,我運行命令

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

Test.rsp看起來像這樣

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

如果我直接編譯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

相關問題