【发布时间】:2021-11-11 13:56:51
【问题描述】:
我尝试在 ASP.NET Core 6.0 中创建一个新的 Web API,如 https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-6.0&tabs=visual-studio-code#create-a-web-project 所示。
这是我的新项目的WeatherForecastController:
using Microsoft.AspNetCore.Mvc;
// see here This is ends with ";". And showing this error "{ expected [TodoApi]"
namespace TodoApi.Controllers;
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
// some code
}
WeatherForecast 类看起来像这样
// see here This is ends with ";". And showing this error "{ expected [TodoApi]"
namespace TodoApi;
public class WeatherForecast
{
// some code
}
而且所有命名空间都不见了。
program.cs 文件看起来像这样;创建时它没有任何命名空间:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
//.......
而TodoApi.GlobalUsings.g.cs文件也有错误
// <auto-generated/>
global using global::Microsoft.AspNetCore.Builder;
global using global::Microsoft.AspNetCore.Hosting;
global using global::Microsoft.AspNetCore.Http;
global using global::Microsoft.AspNetCore.Routing;
global using global::Microsoft.Extensions.Configuration;
global using global::Microsoft.Extensions.DependencyInjection;
global using global::Microsoft.Extensions.Hosting;
global using global::Microsoft.Extensions.Logging;
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Net.Http.Json;
global using global::System.Threading;
global using global::System.Threading.Tasks;
dotnet --info 的输出是
.NET SDK (reflecting any global.json):
Version: 6.0.100
Commit: 9e8b04bbff
Runtime Environment:
OS Name: ubuntu
OS Version: 20.04
OS Platform: Linux
RID: ubuntu.20.04-x64
Base Path: /snap/dotnet-sdk/147/sdk/6.0.100/
Host (useful for support):
Version: 6.0.0
Commit: 4822e3c3aa
.NET SDKs installed:
6.0.100 [/snap/dotnet-sdk/147/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.0 [/snap/dotnet-sdk/147/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.0 [/snap/dotnet-sdk/147/shared/Microsoft.NETCore.App]
To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download
但是如果我创建一个 ASP.NET Core 3.1 项目,它不会显示这些错误(我安装了 ASP.NET Core 3.1 来创建 ASP.NET Core 3.1 Web API)。
不知道为什么新建 ASP.NET Core 6.0 Web API 项目时会出现这些错误。
有人知道吗?
编辑:我正在使用 Visual Studio 代码。 和 TodoApi.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
</ItemGroup>
</Project>
【问题讨论】:
-
你可能有一个旧的 Visual Studio 版本。安装 2022 以获得正确的 C# 10 支持。或者,如果您正在使用,请更新 VS Code 的 C# 插件。
-
csproj中设置了什么语言版本?
-
缺少命名空间和程序类是非常好的。它是 C# 10 和 .NET 6 中的一个新特性(或一些新特性)。
-
请阅读How to Ask 并更新您的标题和正文。 “问题”和“错误”并不能帮助我们解决问题,而且您使用 Visual Studio Code 的唯一证据是您发布的链接之一。提及确切的错误和使用的软件。另请参阅我的第一条评论。
-
it is created with errors.你没有发布任何错误。 .NET 6 工作得很好 - 从 ASP.NET Core Web API 和 Blazor WASM 项目的 Preview 1 开始我就一直在使用它
标签: c# asp.net-core asp.net-core-webapi asp.net-core-6.0