【问题标题】:C# program wont start outside visual studio as a .EXEC# 程序不会在 Visual Studio 之外作为 .EXE 启动
【发布时间】:2018-08-31 21:24:33
【问题描述】:

我在 C# winforms 中创建了一个小程序,当我在 Visual Studio 2017 中启动它时运行良好。但是当我构建解决方案并双击 .exe 时,没有任何反应,没有屏幕出现,甚至任务管理器也看不到它。没有错误。好像什么都做不了!我唯一的猜测是我构建它是错误的,因为我使用 Nuget 在解决方案中安装 newtonsofts JSON.NET,我需要做任何不同的事情还是应该只构建解决方案?

[已解决]

今天学习了bin和obj文件夹的区别,感谢大家的帮助

【问题讨论】:

  • 你做过控制台应用吗?
  • 不,这是一个 winforms 应用程序
  • exe的名称是什么,在什么文件夹下?
  • AppDomain.CurrentDomain.UnhandledExceptionApplication.ThreadException 编写异常处理程序也许会有所帮助。处理程序应将异常写入文件。也许这有助于找出发生了什么。
  • @Vecro bin\debug? bin\release?您正在运行由您当前选择的构建配置构建的那个吗?

标签: c# visual-studio winforms json.net exe


【解决方案1】:

根据您的评论:

它在项目的 obj/debug 文件夹中

听起来您运行的是错误的 .exe。 obj 文件夹用于临时/杂项。构建过程中的文件(请参阅What is obj folder generated for?)。

相反,如果“调试”是您正在构建的配置,您希望在 bin\Debug 中运行 exe。你可以在VS顶部看到哪个配置。

就像其他人也提到的那样,确保 Newtonsoft.Json.dll 也被复制到该输出目录。一般来说,程序及其依赖项需要在一起。否则,您的 exe 将不知道在哪里可以找到它需要运行的 JSON 代码。

99% 的情况下,您应该假装obj 目录甚至不存在。

如果 仍然 没有为您指明正确的方向,请从命令窗口运行应用程序。任何异常都应该打印到它上面,并且窗口将保持打开状态供您检查(这样做的好处是不需要任何额外的日志记录或异常处理代码来查看此错误)。
例如,我编写了一个糟糕的应用程序,它在一个名为 Test 的方法中获得了一个 NullReferenceException,该方法是从 Main 调用的。如您所见,堆栈跟踪很容易看到,即使我的应用程序已经崩溃(感谢 ColinM 最初提出这个问题)。

【讨论】:

    【解决方案2】:

    我认为启动模块有问题。请按照以下步骤操作

    1. 在 Visual Studio 中打开您的解决方案
    2. 双击属性

    3. 选择 Windows 应用程序的输出类型

    4. 请务必按如下方式设置启动对象

    希望对你有帮助

    【讨论】:

    • 如果项目属性错误,为什么要从 Visual Studio 运行?
    【解决方案3】:

    我认为只有一个原因

    在 Visual Studio 中预定义了一个 command line argument。你的应用程序使用这个参数来执行,没有它,它会很快关闭自己,你甚至看不到你的应用程序打开了。

    Right click on your project in VS -> Properties -> Debug 看看命令行参数中是否有值

    【讨论】:

    • 命令行参数中没有值,应该有吗?如果是的话应该是什么?
    • WinForms 应用程序从什么时候开始在该窗口中提供预定义参数?
    • +1 我碰巧忘记了我已经实现并进入调试配置的命令行参数。
    【解决方案4】:

    exe 及其支持文件应该在 bin 文件夹中。不要只从 bin 文件夹中复制 exe 并尝试运行它。编写一些异常代码来获取详细信息是个好主意。

    【讨论】:

    • @Vecro - 我想他是在告诉你确保支持库 (Newtonsoft.Json.dll) 也在 bin 文件夹中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2022-10-09
    • 1970-01-01
    相关资源
    最近更新 更多