我在其中一个课程中编写了一个Main方法。我的启动对象说Not set
。点击它时,下拉菜单中没有显示任何其他信息。为什么我不能选择main方法作为我的启动对象?我想只按ctrl + F7来运行我的主方法但是这样做时没有任何反应。以下是我正在使用的非常短的主要方法。
static void Main(string[] args)
{
Program c = new Program();
c.consoleread();
}
答案 0 :(得分:5)
您的主要方法必须是public
,static
(VB.NET中为Shared
)并且具有特定签名:它必须返回void
或{{1其参数列表必须为空或者是int
的数组。
如果您的方法与这些要求不匹配,则无法选择它作为启动对象。
答案 1 :(得分:4)
将类移入新命名空间后,我遇到了麻烦。尝试关闭解决方案并手动编辑.csproj文件:
<PropertyGroup>
<StartupObject>MyNamespace.MyClassWithMain</StartupObject>
</PropertyGroup>
答案 2 :(得分:2)
重启VS使其正常工作!
背景: 今天在我想要更改为控制台应用程序的.net 4.5.1服务项目中发生了这个错误。将输出类型更改为“控制台应用程序”,但仍未更改。我也手工编辑了.csproj。
答案 3 :(得分:1)
对于VB.NET项目,
项目 - &gt; {ProjectName}属性 - &gt;应用
如果选中“启用应用程序框架”,则无法选择常用的Main方法。错误是:
选中“启用应用程序框架”时,启动对象必须是一个表单。
此外,取消选中后,标签会从启动表单更改为启动对象。
答案 4 :(得分:1)
如果所需的类未在下拉列表中显示,则可以在解决方案资源管理器中双击该项目,然后在项目名称后添加该类名称。 (在代码中显示为“ myproject”和“ myclass”)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<StartupObject>myproject.myclass</StartupObject>
</PropertyGroup>
</Project>
答案 5 :(得分:0)
从.net core 3预览版降级到2.2版后,我遇到了同样的问题-您需要从此处安装最新版本的SDK: