C# 什么会导致编译后的.exe不执行?

C# 什么会导致编译后的.exe不执行?,c#,visual-studio-2013,C#,Visual Studio 2013,因此,我有两个C#程序,它们都引用相同的自定义库。每个程序中都有对该库中方法的调用。在一个程序中,此方法调用附加到一个按钮按下,而在另一个程序中,它位于Main方法下,因此它应该与.exe一起运行。。。但事实并非如此。当我按下按钮调用一个程序中的方法时,它就像一个符咒一样工作,但另一个程序的主方法中的调用却没有 以下是我的代码片段: windows窗体应用程序内部的方法调用(有效) windows应用程序的完整代码(不工作) 因此表单应用程序编译成一个.exe,当运行该程序时,它会显示一个带有按

因此,我有两个C#程序,它们都引用相同的自定义库。每个程序中都有对该库中方法的调用。在一个程序中,此方法调用附加到一个按钮按下,而在另一个程序中,它位于Main方法下,因此它应该与.exe一起运行。。。但事实并非如此。当我按下按钮调用一个程序中的方法时,它就像一个符咒一样工作,但另一个程序的主方法中的调用却没有

以下是我的代码片段:

windows窗体应用程序内部的方法调用(有效)

windows应用程序的完整代码(不工作)

因此表单应用程序编译成一个.exe,当运行该程序时,它会显示一个带有按钮的表单,当我单击该按钮时,会调用restart_all()方法并重新启动进程。第二个程序是一个windows应用程序,它编译成一个.exe,在运行时调用Main()方法,然后调用相同的restart_all()方法


窗体正常工作,windows应用程序无法。。。它在执行时完全不起任何作用。

从代码片段很难判断您在做什么。 似乎代理_控件未在主方法中初始化。 第二个代码段无法编译。 代理控制应该有一个新的初始化。
或者,如果它是posmon\u restart类的类成员,则在Main方法中初始化该类。

什么是
proxy\u控件。restart\u all
?是否确实引用了库的正确版本?“不执行”是什么意思?您是否尝试过在问题代码上设置断点?更重要的是,您预期不会发生的事情是什么?问题的症状是什么?你怎么知道它不起作用?它会引发一些异常吗?如果在方法上设置断点,在调试器中启动程序,并在到达断点后在
Debug-exceptions
下启用所有异常,会发生什么情况?我假设它是一个具有静态方法restart_all()的类的名称,因此这可能会起作用。但是很明显,它缺少了第二种方法所做的一些初始化。没有缺少初始化,我只是没有在这里复制这一部分(很长)。第一个代码段是另一个具有正确初始化的类的一部分。restart_all函数实际上调用了proxy_控件库中的一个静态方法(这两个程序都正确引用了)。看看代码,我发现这两个实现之间没有任何区别。好吧,我再试试。您确定主方法在执行代理\u控件后不会立即返回。重新启动\u all()?在第一个带有按钮单击处理程序的示例中,Windows消息循环将一直运行,直到有人调用Application.Exit()。您是否尝试在调用代理_控件前后插入跟踪。重新启动_all()?在restart_all()之后添加Console.ReadKey(),以防止程序立即退出。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using p_controller;

/*p_controller is a custom library that contains the static method 
restart_all which restarts some system processes*/

namespace p_restarter_form : Form
{

class p_restart_form
{
   public p_restart_form()
   {
      //constructor does some things in actual program
    }

    private void restart_all_button_Click(object sender, EventArgs e)
    {
       p_controls.restart_all();
    }
 }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using proxy_controller;

namespace p_restarter
{
class p_restart
{
    static void Main()
    {
        p_controls.restart_all();
    }
}
}