C# C“计划”;“运行两次”;,通过可执行文件和cmd

C# C“计划”;“运行两次”;,通过可执行文件和cmd,c#,windows,cmd,C#,Windows,Cmd,这是我的代码仅供参考,尽管我相当确定不是代码导致了问题。我在其他机器上运行了相同的代码,没有出现问题 using System; public class Program { public static void Main() { Console.WriteLine("Body-mass-index Calculator"); Console.Write("Enter a weight (in kg): "); double weight = Double.Parse(Console.Re

这是我的代码仅供参考,尽管我相当确定不是代码导致了问题。我在其他机器上运行了相同的代码,没有出现问题

using System;

public class Program
{

public static void Main()
{
Console.WriteLine("Body-mass-index Calculator");

Console.Write("Enter a weight (in kg): ");
double weight = Double.Parse(Console.ReadLine());

Console.Write("Enter a height (in cm): ");
double heightcm = Double.Parse(Console.ReadLine());

double heightm = heightcm/100;

double bmi = (weight/heightm/heightm);
double bmiformatted = Math.Round(bmi, 2);

Console.WriteLine("Resulting body mass index: {0}", bmiformatted);

}
}
当运行可执行文件时,cmd窗口打开,我输入它要求的内容,并显示计算出的bmi值。然后按enter键,cmd窗口关闭。到现在为止,一直都还不错。但是第二个cmd窗口打开,与第一个窗口相同,再次提示我输入值。我会做我第一次做的事情,这一次它将永远关闭

如果我选择不输入提示输入的值,而是关闭窗口,它将再次打开第二个窗口


运行cmd有点不同。程序将在一个新窗口中运行,一旦该窗口完成,它将关闭,程序将从原始cmd窗口再次运行


如果任何其他信息有助于解决此问题,请让我知道。谢谢。

您也可以在调试器中启动

windbg或ntsd(ntsd是一个控制台程序,可能已安装)。这两个都来自Windows调试工具

下载并安装Windows调试工具

安装Windows SDK,但只需选择调试工具

在**C:**

启动Windbg。文件菜单-符号文件路径并输入

srv*C:\symbols*http://msdl.microsoft.com/download/symbols
然后

您可以按F12来停止它,
kb
将显示调用堆栈(
g
继续程序并
pct
运行到下一个函数调用)。如果出现错误,它也会停止并显示错误

键入
lm
以列出加载的模块,
x**
列出符号,bp symbolname设置断点

如果在VB6中编程,则此环境变量
link=/pdb:none
将符号存储在dll中,而不是单独的文件中。确保编译程序时没有优化,并勾选“创建符号调试信息”框。两者都位于项目属性的“编译”选项卡上

CoClassSyms(microsoft.com/msj/0399/hood/hood0399.aspx)也可以从类型库中生成符号


.也可以在调试器中启动

windbg或ntsd(ntsd是一个控制台程序,可能已安装)。这两个都来自Windows调试工具

下载并安装Windows调试工具

安装Windows SDK,但只需选择调试工具

在**C:**

启动Windbg。文件菜单-符号文件路径并输入

srv*C:\symbols*http://msdl.microsoft.com/download/symbols
然后

您可以按F12来停止它,
kb
将显示调用堆栈(
g
继续程序并
pct
运行到下一个函数调用)。如果出现错误,它也会停止并显示错误

键入
lm
以列出加载的模块,
x**
列出符号,bp symbolname设置断点

如果在VB6中编程,则此环境变量
link=/pdb:none
将符号存储在dll中,而不是单独的文件中。确保编译程序时没有优化,并勾选“创建符号调试信息”框。两者都位于项目属性的“编译”选项卡上

CoClassSyms(microsoft.com/msj/0399/hood/hood0399.aspx)也可以从类型库中生成符号


.也可以在调试器中启动

windbg或ntsd(ntsd是一个控制台程序,可能已安装)。这两个都来自Windows调试工具

下载并安装Windows调试工具

安装Windows SDK,但只需选择调试工具

在**C:**

启动Windbg。文件菜单-符号文件路径并输入

srv*C:\symbols*http://msdl.microsoft.com/download/symbols
然后

您可以按F12来停止它,
kb
将显示调用堆栈(
g
继续程序并
pct
运行到下一个函数调用)。如果出现错误,它也会停止并显示错误

键入
lm
以列出加载的模块,
x**
列出符号,bp symbolname设置断点

如果在VB6中编程,则此环境变量
link=/pdb:none
将符号存储在dll中,而不是单独的文件中。确保编译程序时没有优化,并勾选“创建符号调试信息”框。两者都位于项目属性的“编译”选项卡上

CoClassSyms(microsoft.com/msj/0399/hood/hood0399.aspx)也可以从类型库中生成符号


.也可以在调试器中启动

windbg或ntsd(ntsd是一个控制台程序,可能已安装)。这两个都来自Windows调试工具

下载并安装Windows调试工具

安装Windows SDK,但只需选择调试工具

在**C:**

启动Windbg。文件菜单-符号文件路径并输入

srv*C:\symbols*http://msdl.microsoft.com/download/symbols
然后

您可以按F12来停止它,
kb
将显示调用堆栈(
g
继续程序并
pct
运行到下一个函数调用)。如果出现错误,它也会停止并显示错误

键入
lm
以列出加载的模块,
x**
列出符号,bp symbolname设置断点

如果在VB6中编程,则此环境变量
link=/pdb:none
将符号存储在dll中,而不是单独的文件中。确保编译程序时没有优化,并勾选“创建符号调试信息”框。两者都位于项目属性的“编译”选项卡上

CoClassSyms(microsoft.com/msj/0399/hood/hood0399.aspx)也可以从类型库中生成符号


在我离开之前,我也有这个问题