如何在Visual Studio 2019及VSCode中运行独立C#文件避免入口冲突
问题原因
你收到的There is already a main entry point报错,是因为C#控制台应用默认要求单个项目内只能有1个Main方法作为程序执行的唯一入口,你现在的Program.cs和Variables.cs中都定义了Main方法,就会触发入口点冲突。
Visual Studio 2019 多练习文件运行方案
你可以根据自己的使用习惯选任意一种方案:
方案1:切换启动对象(无需修改代码)
- 右键解决方案面板中的项目名称 → 选择「属性」
- 切换到「应用」标签页,找到「启动对象」下拉菜单
- 选择你要运行的文件对应的类即可,比如要运行Variables.cs就选
Variables类,后续要运行数组、用户输入练习文件,只需要提前给这些文件写带Main方法的独立类,运行前在这里切换启动对象即可。
方案2:封装练习方法统一调用(更适合新手,无需频繁改配置)
不需要给每个练习文件都写Main方法,把练习逻辑封装为独立方法,统一从Program.cs的入口调用即可:
- 删除Variables.cs里的
Main方法,把练习代码放到自定义的静态方法中:
// Variables.cs 示例代码 public static class VariablesPractice { public static void Run() { // 原来写在Variables.cs的Main方法里的所有练习代码放这里 int a = 10; Console.WriteLine(a); } }
- 在Program.cs的
Main方法里调用对应练习的方法,要运行哪个练习就调用哪个方法:
// Program.cs 示例代码 internal class Program { static void Main(string[] args) { // 运行变量练习 VariablesPractice.Run(); // 后续要运行数组练习就取消注释下一行,注释上面的调用即可 // ArrayPractice.Run(); } }
方案3:每个练习建独立项目(完全隔离无干扰)
如果不想不同练习的代码互相影响,可以右键解决方案 → 选择「添加」→「新建项目」,每个练习单独创建一个控制台项目,要运行哪个练习就右键对应项目 → 选择「设为启动项目」即可。
VSCode 多C#文件运行配置
VSCode下出现相同入口冲突时,按以下规则配置即可:
- 如果是单项目内存放多练习文件,打开项目根目录的
.csproj配置文件,在<PropertyGroup>节点下添加<StartupObject>启动类名</StartupObject>即可指定入口,示例配置如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <!-- 指定启动类为Variables --> <StartupObject>Variables</StartupObject> </PropertyGroup> </Project>
- 也可以和上面VS2019的方案2一样,把所有练习封装为独立方法,统一从Program.cs调用,不需要改配置。
- 如果需要完全隔离练习,每个练习单独创建新的.NET控制台项目即可。
内容的提问来源于stack exchange,提问作者Carl
相关产品推荐
相关产品推荐

