Visual Studio代码:"Program has more than one entry point defined"
Visual Studio Code: "Program has more than one entry point defined"
我创建了一个 C# project using Visual Studio Code。该项目包含两个 .cs 文件,Addition.cs 和 Substraction.cs。两个文件都包含一个 main() 函数并且两个文件都包含两个不同的程序。
Addition.cs 文件中的代码:
using System;
namespace Example
{
class Addition
{
static void Main(string[] args)
{
int sum = 3 + 2;
Console.WriteLine(sum);
}
}
}
Substraction.cs 文件中的代码
using System;
namespace Example
{
class Substraction
{
static void Main(string[] args)
{
int sub = 3 - 2;
Console.WriteLine(sub);
}
}
}
我想一个一个地测试这两个程序,但是当我这样做的时候
"dotnet run"
失败并出现上述错误。
我知道是因为同一项目中的两个 main() 函数(入口点)导致了此错误,但这可以在 Visual Studio 中通过设置启动项目来解决。
我正在使用 Visual Studio 代码,我无法在其中设置启动项目。
有没有办法在 Visual Studio 代码中为 C# 项目设置入口点?
如果两个入口点都在同一个项目中,设置启动项目无论如何都不会做任何事情。您需要设置启动object.
这可以在完整版 Visual Studio 的项目属性对话框中完成(在“应用程序”下查找 "Startup object"),或者在 .csproj 文件中设置 Project/PropertyGroup/StartupObject
:
<StartupObject>Example.Addition</StartupObject>
或者考虑使用带有命令行参数的单个 Main()
入口点。
如果您使用的是 Visual Studio 代码,请添加以下行。
<StartupObject>ExampleNameSpace.ExampleClass</StartupObject>
对于 ExampleNameSpace,键入您的命名空间名称
对于 ExampleClass,键入您的 class 名称。
如果我认为您的命名空间是 CSharp,并且您在其中定义 Main 方法的 class 是 MainClass,那么您的 .csproj 应该如下所示。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<StartupObject>CSharp.MainClass</StartupObject>
</PropertyGroup>
</Project>
注意:此代码示例适用于 .Net5
我创建了一个 C# project using Visual Studio Code。该项目包含两个 .cs 文件,Addition.cs 和 Substraction.cs。两个文件都包含一个 main() 函数并且两个文件都包含两个不同的程序。
Addition.cs 文件中的代码:
using System;
namespace Example
{
class Addition
{
static void Main(string[] args)
{
int sum = 3 + 2;
Console.WriteLine(sum);
}
}
}
Substraction.cs 文件中的代码
using System;
namespace Example
{
class Substraction
{
static void Main(string[] args)
{
int sub = 3 - 2;
Console.WriteLine(sub);
}
}
}
我想一个一个地测试这两个程序,但是当我这样做的时候
"dotnet run"
失败并出现上述错误。
我知道是因为同一项目中的两个 main() 函数(入口点)导致了此错误,但这可以在 Visual Studio 中通过设置启动项目来解决。
我正在使用 Visual Studio 代码,我无法在其中设置启动项目。
有没有办法在 Visual Studio 代码中为 C# 项目设置入口点?
如果两个入口点都在同一个项目中,设置启动项目无论如何都不会做任何事情。您需要设置启动object.
这可以在完整版 Visual Studio 的项目属性对话框中完成(在“应用程序”下查找 "Startup object"),或者在 .csproj 文件中设置 Project/PropertyGroup/StartupObject
:
<StartupObject>Example.Addition</StartupObject>
或者考虑使用带有命令行参数的单个 Main()
入口点。
如果您使用的是 Visual Studio 代码,请添加以下行。
<StartupObject>ExampleNameSpace.ExampleClass</StartupObject>
对于 ExampleNameSpace,键入您的命名空间名称
对于 ExampleClass,键入您的 class 名称。
如果我认为您的命名空间是 CSharp,并且您在其中定义 Main 方法的 class 是 MainClass,那么您的 .csproj 应该如下所示。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<StartupObject>CSharp.MainClass</StartupObject>
</PropertyGroup>
</Project>
注意:此代码示例适用于 .Net5