为什么在使用.rsp文件构建时出现错误CS0116?

时间:2017-10-17 16:36:06

标签: c# compiler-errors csc

我尝试使用csc.exe和.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文件进行编译会导致此错误?

1 个答案:

答案 0 :(得分:2)

编译器正在尝试将文件解释为C#。如果要使用响应文件,则需要让编译器知道它是构建文件而不是代码文件。来自the docs

  

@选项允许您指定包含编译器选项和要编译的源代码文件的文件

例如:

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