在Win10上使用csc.exe
进行编译时,有一个问题需要清除此错误。我是C#的新手。在我在一月份开始上课之前先做一些自我学习。
按照“ TeamTreehouse”教程进行操作。他们在工作区中使用mono
。我更喜欢在机器上使用vscode
来熟悉在mono之外使用C#。
从我在CS0501上看到的问题来看,这不是编译器问题,不应该是问题,但是使用csc.exe
会引起问题。添加abstract
会带来一系列新问题。
从终端到编译器的命令为csc *.cs
我不确定接下来要去哪里寻找解决方案。我一直无法使用所谓的Auto-Implemented Properties
找到工作的人。
错误是
Invader.cs(6,39):错误CS0501:“ TreehouseDefense.Invader.Location.get”必须声明一个主体,因为该主体未标记为抽象或外部
Invader.cs(6,52):错误CS0501:“ TreehouseDefense.Invader.Location.set”必须声明一个主体,因为该主体未标记为抽象或外部
代码 Invader.cs
namespace TreehouseDefense {
class Invader {
public MapLocation Location { get; private set; }
}
}
项目 Object_Project.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
</Project>
答案 0 :(得分:3)
您使用的是2005年以前的C#2编译器。C#2不支持自动实现的属性-以及现代C#的所有其他功能。
您要运行C#7编译器。我建议安装Visual Studio 2017 Community Edition,并使用Visual Studio 2017命令提示符,以便正确的csc
版本在路径上。
或者直接下载.NET Core SDK并使用dotnet
命令而不是csc
来构建和运行。
答案 1 :(得分:0)
我想感谢大家在此方面的帮助。它使我指向了正确的方向。已经做了更多的阅读,并找到了解决方案。以下方法是我发现可以制作自包含EXE的最简单方法。我无法使dotnet build
,dotnet publish
或msbuild
正常工作。还有很多东西要学习。
这将安装Microsoft (R) Visual C# Compiler version 2.10.0.0 (b9fb1610)
NuGet v4.8.1
Link to Download NuGet
中打开Command Prompt
,然后运行nuget install Microsoft.Net.Compilers
C:\Windows\Microsoft.NET
PATH
向C:\Windows\Microsoft.NET\Microsoft.Net.Compilers.2.10.0\tools
添加了一个新的环境变量(也将其移到了我现有的环境变量之上,也可以将其删除) csc *.cs
现在制作一个自包含的EXE