9

我在我的一个类中编写了一个 Main 方法。我的启动对象说Not set。单击它时,下拉菜单中不会显示任何其他内容。为什么我不能选择主要方法作为我的启动对象?我只想通过按 ctrl+F7 来运行我的 Main 方法,但是这样做时,什么也没有发生。下面是我正在使用的非常短的 Main 方法。

static void Main(string[] args)
{
    Program c = new Program();
    c.consoleread();
}
4

7 回答 7

7

将一个类移动到一个新的命名空间后,我遇到了这个麻烦。尝试关闭解决方案并手动编辑 .csproj 文件:

<PropertyGroup>
  <StartupObject>MyNamespace.MyClassWithMain</StartupObject>
</PropertyGroup>
于 2014-03-03T17:31:38.287 回答
5

您的主要方法必须是public, staticShared在 VB.NET 中)并具有特定签名:它必须返回voidint,并且其参数列表必须为空或为string.

如果您的方法不符合这些要求,则不能选择它作为启动对象。

于 2012-08-14T11:17:48.880 回答
3

重新启动VS使其工作!

背景:这个错误今天发生在我想更改为控制台应用程序的 .net 4.5.1 服务项目中。将输出类型更改为“控制台应用程序”,它仍然没有改变。我还手动编辑了 .csproj。

于 2015-12-28T11:27:19.537 回答
2

如果是 VB.NET 项目,

项目 -> {ProjectName} 属性 -> 应用程序

如果选中 Enable application framework,则不能选择通常的 Main 方法。错误是:

选中“启用应用程序框架”时,启动对象必须是表单。

此外,取消选中后,标签将从Startup form更改为Startup object

错误对话框:

在此处输入图像描述

于 2018-01-03T13:29:52.453 回答
1

如果您想要的类没有显示在下拉列表中,您可以在解决方案资源管理器中双击项目,然后在项目名称后添加类名称。(在代码中显示为“myproject”和“myclass”)

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

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<StartupObject>myproject.myclass</StartupObject>
</PropertyGroup>

</Project>
于 2020-07-30T21:04:50.280 回答
0

从 .net core 3 预览版降级到 2.2 后,我遇到了同样的问题 - 您需要从这里安装最新版本的 SDK:

https://dotnet.microsoft.com/download/dotnet-core/2.2

于 2019-09-13T15:19:35.000 回答
0

如果您的项目使用Enable application framework选项,那将Sub Main是未显示的一种可能性。

来自https://visualstudiomagazine.com/articles/2007/10/01/enable-the-application-framework-in-vb.aspx

Q 当我在我的 Visual Basic 应用程序中选中“启用应用程序框架”时会发生什么?为什么我的 Sub Main 会从 Startup Object 下拉列表中消失...

Visual Basic 支持“应用程序框架”,可以更轻松地管理应用程序的启动、关闭和异常管理。您可以使用项目属性中的复选框启用或禁用应用程序框架。...

无论您是否使用应用程序框架,Visual Basic 都会为您的应用程序生成一个隐藏的 My.Application 类。...

您看不到的 My.Application 类部分包括一个共享的 Sub Main 作为应用程序的入口点。... Sub Main 从启动组合框中消失的原因是 Visual Basic 正在为您提供 Sub Main。

这只是对这个问题最相关方面的总结,但链接的文章还包括解释应用程序框架的其他一些细节。

于 2021-08-17T11:43:30.027 回答