在 Linux 上的 .netcore 3.0 中找不到类型或命名空间名称 'System'(是否缺少 using 指令或程序集引用?)
The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) in .netcore 3.0 on Linux
我刚刚创建了一个简单的 "Hello World" 控制台应用程序,开始使用 VS Code 在 Linux 上测试 .netcore 3.0 开发,它不会编译(当前)26 个错误,主要说明未定义或导入预定义类型 System.Object、System.String、System.Void 等。
.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Project Include="Program.cs"/>
</ItemGroup>
</Project>
Program.Main
using System;
namespace TestNetCore3
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
有趣的是,我一直在处理的类库也有同样的问题,它在 Windows 10 机器上编译和运行(测试)正常,但当我加载回购时我的 Linux 机器在接缝处全都散架了。
检查您是否安装了指定的 SDK,在本例中为 .NET 3.0。
您可以通过键入以下内容来执行此操作:
dotnet --list-sdks
对于所有已安装的 SDK 版本,或者像 TiGreX 在评论中指出的那样,使用 :
dotnet --info
另外请记住,对于 3.0 Visual Studio 代码需要最新的 C# 扩展,所以请检查您是否有它。
原来我同时安装了 3.0.100 和 2.2.402 SDK,这导致了冲突。卸载 2.2.402 成功了
sudo rm -rf /usr/share/dotnet/sdk/2.2.402
我刚刚创建了一个简单的 "Hello World" 控制台应用程序,开始使用 VS Code 在 Linux 上测试 .netcore 3.0 开发,它不会编译(当前)26 个错误,主要说明未定义或导入预定义类型 System.Object、System.String、System.Void 等。
.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Project Include="Program.cs"/>
</ItemGroup>
</Project>
Program.Main
using System;
namespace TestNetCore3
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
有趣的是,我一直在处理的类库也有同样的问题,它在 Windows 10 机器上编译和运行(测试)正常,但当我加载回购时我的 Linux 机器在接缝处全都散架了。
检查您是否安装了指定的 SDK,在本例中为 .NET 3.0。
您可以通过键入以下内容来执行此操作:
dotnet --list-sdks
对于所有已安装的 SDK 版本,或者像 TiGreX 在评论中指出的那样,使用 :
dotnet --info
另外请记住,对于 3.0 Visual Studio 代码需要最新的 C# 扩展,所以请检查您是否有它。
原来我同时安装了 3.0.100 和 2.2.402 SDK,这导致了冲突。卸载 2.2.402 成功了
sudo rm -rf /usr/share/dotnet/sdk/2.2.402