我在我的一个类中编写了一个 Main 方法。我的启动对象说Not set
。单击它时,下拉菜单中不会显示任何其他内容。为什么我不能选择主要方法作为我的启动对象?我只想通过按 ctrl+F7 来运行我的 Main 方法,但是这样做时,什么也没有发生。下面是我正在使用的非常短的 Main 方法。
static void Main(string[] args)
{
Program c = new Program();
c.consoleread();
}
我在我的一个类中编写了一个 Main 方法。我的启动对象说Not set
。单击它时,下拉菜单中不会显示任何其他内容。为什么我不能选择主要方法作为我的启动对象?我只想通过按 ctrl+F7 来运行我的 Main 方法,但是这样做时,什么也没有发生。下面是我正在使用的非常短的 Main 方法。
static void Main(string[] args)
{
Program c = new Program();
c.consoleread();
}
将一个类移动到一个新的命名空间后,我遇到了这个麻烦。尝试关闭解决方案并手动编辑 .csproj 文件:
<PropertyGroup>
<StartupObject>MyNamespace.MyClassWithMain</StartupObject>
</PropertyGroup>
您的主要方法必须是public
, static
(Shared
在 VB.NET 中)并具有特定签名:它必须返回void
或int
,并且其参数列表必须为空或为string
.
如果您的方法不符合这些要求,则不能选择它作为启动对象。
重新启动VS使其工作!
背景:这个错误今天发生在我想更改为控制台应用程序的 .net 4.5.1 服务项目中。将输出类型更改为“控制台应用程序”,它仍然没有改变。我还手动编辑了 .csproj。
如果您想要的类没有显示在下拉列表中,您可以在解决方案资源管理器中双击项目,然后在项目名称后添加类名称。(在代码中显示为“myproject”和“myclass”)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<StartupObject>myproject.myclass</StartupObject>
</PropertyGroup>
</Project>
从 .net core 3 预览版降级到 2.2 后,我遇到了同样的问题 - 您需要从这里安装最新版本的 SDK:
如果您的项目使用“ 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。
这只是对这个问题最相关方面的总结,但链接的文章还包括解释应用程序框架的其他一些细节。