C# 9 программы верхнего уровня без csproj?

Одна из особенностей будущего C# 9 - это так называемые программы верхнего уровня. Чтобы вы могли просто написать следующее без классов.

using System;

Console.WriteLine("Hello World!");

и dotnet run запустит его для вас.

У меня работает, но только если я еще добавлю .csproj файл, как показано ниже

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net5.0</TargetFramework>
    </PropertyGroup>
</Project>

Есть ли способ пропустить .csprojс картинки?:) Так что там всего один Program.cs файл и не более того.

2 ответа

Решение

Нет, нет. В csproj файл, объясняет компилятору, какой вывод нужно сделать.

Он также ссылается на любые необходимые библиотеки, в вашем случае это SDK: https://docs.microsoft.com/en-us/dotnet/core/tools/csproj

Неявные ссылки на метапакеты основаны на целевой платформе (ах), указанной в <TargetFramework> или же <TargetFrameworks> свойство вашего файла проекта.

Без него в net core не будет информации о том, что и как создавать. У вас даже не было бы ссылок на System Доступны пространства имен.

Вы можете создать файл сценария C# (.csx) и запустить его с dotnet scriptинструмент из

https://github.com/filipw/dotnet-скрипт

Но не настоящий, действительный файл С# нет

Другие вопросы по тегам