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-скрипт
Но не настоящий, действительный файл С# нет