为什么在使用 .rsp 文件构建时出现错误 CS0116?
Why am I getting error CS0116 when building using a .rsp file?
我正在尝试使用 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"
"Program"创建成功
那么为什么使用 .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
我正在尝试使用 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"
"Program"创建成功
那么为什么使用 .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