繁体   English   中英

如何在点网核中设置默认文件(起始点)

[英]How to set the default file(starting point) in dot net core

我正在尝试探索点网核心功能,以便更好地理解它,对于我执行的相同

dotnet new
dotnet build
dotnet run

命令在命令提示符窗口中,它为我创建了一个项目,并创建了名为Project.cs文件,最后显示了Hello World! 在窗口。

现在我在同一个文件夹结构中添加了一个不同名称SampleDotNetCoreApp.cs ,我想知道如何在执行dotnet run命令时将SampleDotNetCoreApp.cs设置为程序执行的默认起点。

换句话说,当我在同一文件夹中有多个cs文件时,我想知道如何更改点网核心中的起始执行点。

您可以编辑“Project.csproj”文件以指定使用哪种Main方法

<PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <StartupObject>Project.SampleDotNetCoreApp</StartupObject>
</PropertyGroup>

注意StartupObject标记,标识用于启动程序的类。 该类必须具有static Main(string[] args)方法。

使用dotnet restore确保成功保存更改,然后构建/运行项目

dotnet rundotnet build会执行自动恢复,因此无需手动执行此操作

- 是的,我知道我迟到了,但我刚遇到这个问题,发现很难解决。 不妨分享我新发现的智慧。

程序的入口点由静态Main方法定义。

当执行dotnet new ,这将使用此方法创建Program.cs

public static void Main(string[] args)
{
    Console.WriteLine("Hello World!");
}

这成为程序的入口点(因为它是项目中唯一的static Main方法。

要从命令行添加带有static Main方法的新.cs文件,您可以使用:

echo using System;namespace ConsoleApplication{public class SampleDotNetCoreApp{public static void Main(string[] args){Console.WriteLine("Hello NEW World!");}}} > SampleDotNetCoreApp.cs

但是,如果您现在运行dotnet build您将收到此错误:

程序定义了多个入口点。 使用/ main编译以指定包含入口点的类型。

因为有2个static Main方法。 我无法通过Compile with /main来解决它的含义,但是要克服此错误,您可以运行与上面类似的echo命令,但这次更改了Program.cs

echo using System;namespace ConsoleApplication{public class Program{public static void MainOLD(string[] args){Console.WriteLine("Hello World!");}}} > Program.cs

现在您只有1个static Main ,您可以运行

dotnet build
dotnet run

并看到输出:

Hello NEW World!

这几乎肯定不是推荐的做法,但希望它可以给你一些想法。

解决这个问题的正确方法 - 不删除代码,确保只有一个主方法,至少给出:

.NET Command Line Tools (1.1.6)

使用Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core

是使用以下参数调用构建:

dotnet build /property:StartupObject=namespace.ClassWithMain

令人困惑的是,错误消息将您指向一个完全不受支持的/main - 我最终找到了正确使用的属性(注意,我使用过/ property:main或/ property:Main无效)这个答案在这里: dotnet build指定main方法

希望能帮助到你

"entryPoint": "ADifferentMethod"

在project.json的顶级。

有关更多详细信息,请参阅https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json#entrypoint

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM