为什么VS Studio Code中的终端使用了错误的程序



我确信这是一个愚蠢的问题,有一个显而易见的答案,但我就是想不通。我正在VS代码中练习C#,并将我所有的项目放在一个文件夹中。现在,当我尝试使用";dotnet run";,终端一直试图访问第一个项目,而不是打开的项目。

"AdditionalCalc.cs(7,17(:错误CS0017:程序定义了多个入口点。使用/main编译以指定包含入口点的类型。[C:\Users\dylan\Desktop\C#practice\C#practice.csproj]";是我收到的错误消息"AdditionCalc.cs";是我的第一个项目,在那里我做了一个简单的加法计算器。

using System;
namespace Practice
{
class Calculator
{
static void Main(string[] args)
{

string str1;
string str2;

int number1;
int number2;
Console.WriteLine("Enter Number One");
str1 = Console.ReadLine();
Console.WriteLine("Enter Number Two");  
str2 = Console.ReadLine();

number1 = Int32.Parse(str1);
number2 = Int32.Parse(str2);
int answer = number1 + number2;

Console.WriteLine("Those two numbers added up is: " + answer);
string fivehundo = (answer >=500) ? "That number is bigger than 500" : "That number is smaller than 500";
Console.WriteLine(fivehundo);

}
}
}

这是我的第一个项目

using System;
namespace Test {   
class NumberGuesser {
static void Main(string[] args){


Random rnd = new Random();
int number = rnd.Next(1, 11);


Console.WriteLine(number);

}
}
} 

这是我的第二个项目,用户将猜测一个数字,每次控制台都会返回实际数字是否高于或低于输入的数字。

我是否必须将这些文件保存在完全不同的地方,并每次创建一个新的控制台?还是我必须以特定的方式打开文件?非常感谢您的帮助,我知道这可能是一个愚蠢的问题,我忽略了一些非常基本的

每个项目都有一个不同的文件夹是非常标准的,所以我建议这样做。

也许有一种替代方法可以让它在一个文件夹中工作,但你也可以从一开始就用典型的方法。

我肯定会听从E.J.Brennans的建议,将您的代码移到不同的文件夹中,但我也要补充一点,您看到的问题与VS代码根本无关——根据您的描述,您创建了一个新类,但不是一个新项目。

VS代码中的终端只是一个常规的终端会话——与在Windows机器上打开命令提示符或Powershell,或者在Linux上打开常规命令行没有什么不同。当您调用"dotnet run"时,您调用的是.NET Core CLI。有关详细信息,请参阅.NET文档。

一般来说,没有其他参数传递给它的"dotnet run"是在当前目录中查找.csproj文件,并试图调用它认为是该项目一部分的Main方法。如果它可以看到多个Main方法,但.csproj文件没有指定要使用哪个类的Main(请参阅此问题(,则它不知道该怎么办,并为您抛出此错误。

这让我们看到了我认为你面临的主要问题。您已经创建了一个新文件,我想"NumberGuesser.cs"使用了您想要使用的新Main方法,但您实际上还没有创建一个新的项目,该项目将附带一个新且独特的.csproj文件。

我建议将您的NumberGuesser代码从一个目录级别上移到一个新项目"dotnet new console-o NumberGueser",然后将您的类移到为您创建的新项目目录中。

最新更新