c# - 使用.rsp文件进行构建时,为什么会出现错误CS0116?

标签 c# compiler-errors csc

我正在尝试使用csc.exe和.rsp文件构建项目,但是我不断收到错误CS0116: namespace 不能直接包含诸如字段或方法之类的成员。为了进行故障排除,我制作了有史以来最简单的程序...

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文件进行编译会导致此错误呢?

最佳答案

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

The @ option lets you specify a file that contains compiler options and source code files to compile



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

关于c# - 使用.rsp文件进行构建时,为什么会出现错误CS0116?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46795051/

相关文章:

c# - 如何在捕获的屏幕截图上绘图

c++ - (C++) 错误 : expected primary-expression before ';' token

.net - Roslyn C# 编译器如何知道在哪里可以找到 .NET 程序集文件?

.net - 资源标识符 xxxxxxxx 已在此程序集中使用

c# - MSBuild 从 4.0 升级到 4.5 后无法再找到依赖项?

c# - 原始 ssh 连接(低级)

c# - 如何在 C++ 和 C# 之间传递带有空字符的字符串?

c# - SELECT 从程序超时但在 SQL Server Management Studio 中工作

c++ - 错误 LNK2005 : constructor already defined

c++ - Dev C++中的嵌入式SQL