Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro CS8370 C# 7.3, mude para 9.0 ou superior

Estou estruturando o arquivo de Funcionários da seguinte forma:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeEntretanto o Erro CS8370 O recurso 'instruções de nível superior' não está disponível em C# 7.3. Use a versão da linguagem 9.0 ou superior. Aparece.

Como podem ver já utilizei a suposta solução do tópico: https://cursos.alura.com.br/forum/topico-erro-cs8370-c-7-3-mude-para-9-0-ou-superior-206394#1077258

Ademais, já descarreguei o projeto alterei o arquivo .csproj adicionando:

<OutputType>Exe</OutputType>
         <TargetFramework>net7.0</TargetFramework>
 <LangVersion>11.0</LangVersion>

ao PropertyGroup. Entretanto, apesar de nenhum erro ser exibido o botão de iniciar desaparece Insira aqui a descrição dessa imagem para ajudar na acessibilidade

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
      <OutputType>Exe</OutputType>
      <TargetFramework>net7.0</TargetFramework>
      <LangVersion>11.0</LangVersion>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{09196D8E-CB59-483A-A2C3-D80E63109AFD}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <RootNamespace>ConsoleApp1</RootNamespace>
    <AssemblyName>ConsoleApp1</AssemblyName>
  ...
  • O Visual Studio Community 2022 esta na última versão 17.4.4
3 respostas

Jocivan,

Meu código está assim:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>disable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

Não sei se resolve, mas tente desabilitar o "ImplicitUsings".

Abaixo algumas explicações a respeito:

==========================================================

Novidades do .NET 6: Implicit Usings

Renato Groffe - Oct 17, 2021 · 3 min read

https://renatogroffe.medium.com/novidades-do-net-6-implicit-usings-c7f1e275423a

==========================================================

O modelo de aplicativo de console C# gera instruções de nível superior

Artigo - 28/11/2022 - 5 minutos para o fim da leitura

https://learn.microsoft.com/pt-br/dotnet/core/tutorials/top-level-templates

==========================================================

C# 9.0 - Top Level Statements

Hoje vamos apresentar o novo recurso do C# 9.0 chamado Top-Level Statements, ou, Instruções de nível superior, que simplifica a criação de classes.

Quando você cria um projeto Console usando as versões anteriores do C# você vai obter por padrão o seguinte template de código :

https://www.macoratti.net/20/11/c9_instsup1.htm

==========================================================

Feature 'using declarations' is not available in C# 7.3. Please use language version 8.0 or greater - Error on one machine but works on another

Defaults The compiler determines a default based on these rules:

...

Target frameworkversionC# language version default
.NET7.xC# 11
.NET6.xC# 10
.NET5.xC# 9.0
.NET Core3.xC# 8.0
.NET Core2.xC# 7.3
.NET Standard2.1C# 8.0
.NET Standard2.0C# 7.3
.NET Standard1.xC# 7.3
.NET FrameworkallC# 7.3

https://stackoverflow.com/questions/58624146/feature-using-declarations-is-not-available-in-c-sharp-7-3-please-use-languag

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version

==========================================================

Esses já são referente ao "Nullable":

==========================================================

C# - Nullable Types

https://www.tutorialsteacher.com/csharp/csharp-nullable-types

==========================================================

Usando C# 8 e Tipos de Referência Nullable no .NET Framework

30 MAR 2020 - 4 MIN(S) DE LEITURA

por Jonathan Allen

Pontos Principais

  • A alteração das versões do C# requer a modificação direta do arquivo do projeto.
  • A ativação global do Nullable Reference Types só pode ser feita com um novo formato de projeto.
  • A nulidade pode ser alterada por um arquivo ou por uma linha, quando necessário.
  • Use atributos de nulidade para evitar verificações nulas desnecessárias.
  • Use o pacote Nullable ao focar em plataformas mais antigas.

https://www.infoq.com/br/articles/CSharp-8-Framework/

==========================================================

Espero que tenha ajudado.

[]'s,

Fabio I.

Muito obrigado, estava tentando adicionar o código ao arquivo .csproj sem apagar o código que já vinha por padrão. Após apagar o arquivo padrão por completo e adicionar o seu código, um erro relacionado ao System.Reflection era exibido (código do erro CS0579), esse erro pode ser corrigido adicionando ao arquivo .csproj o parâmetro: <GenerateAssemblyInfo>false</GenerateAssemblyInfo>.

O código final é:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>

        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>

        <OutputType>Exe</OutputType>
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>disable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
        <Reference Include="System" />
        <Reference Include="System.Core" />
        <Reference Include="System.Xml.Linq" />
        <Reference Include="System.Data.DataSetExtensions" />
        <Reference Include="Microsoft.CSharp" />
        <Reference Include="System.Data" />
        <Reference Include="System.Net.Http" />
        <Reference Include="System.Xml" />
    </ItemGroup>

</Project>

Mais uma vez agradeço.

solução!

Passo a passo para corrigir o problema:

1º PASSO:

Abrir o arquivo .csproj clicando com o botão direito no aplicativo do console, após isso clique em descarregar o projeto Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade2º PASSO:

Apague todo o arquivo que vem por padrão e adicione o seguinte código:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>

        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>

        <OutputType>Exe</OutputType>
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>disable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
        <Reference Include="System" />
        <Reference Include="System.Core" />
        <Reference Include="System.Xml.Linq" />
        <Reference Include="System.Data.DataSetExtensions" />
        <Reference Include="Microsoft.CSharp" />
        <Reference Include="System.Data" />
        <Reference Include="System.Net.Http" />
        <Reference Include="System.Xml" />
    </ItemGroup>

</Project>

3º PASSO:

Salve o projeto e clique com o botão direito no aplicativo do console e recarregue o projeto:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Os arquivos "comuns" voltarão após esse processo e o problema deve ser corrigido.