【问题标题】:Are there important differences between running a program in a IDE and running it by .exe?在 IDE 中运行程序和通过 .exe 运行程序之间是否存在重要区别?
【发布时间】:2016-11-17 09:14:16
【问题描述】:

我的问题很笼统。

我在 winsock2 上做了一个关于客户端-服务器应用程序的大型项目。

事实是:如果我在 Visual Studio 2015 中打开项目并从那里运行,我的应用程序可以完美运行,但如果我通过双击他的 .exe 文件打开服务器,我的客户端不会显示任何内容。

我不会发布代码,因为它就像 500 行一样,但我想问:当我从 .exe 运行程序时,我应该注意一些不同的事情吗?如果出现问题,我如何注意到?

附:我已经从 Visual Studio 进行了调试,当我从 .exe 启动它时它不会出现任何异常/错误(它根本不显示任何内容)。 服务器用 C++ 编写,客户端用 C# 编写。

更新:如果我从 bash 运行它,它就可以工作,我的意思是打开 cmd.exe。双击.exe还是不行。一切都好吗?我可以说我有一个工作程序吗?

【问题讨论】:

  • How can i notice if something goes wrong? - 使用 log4net 之类的东西来记录所有内容。在你的配置中有一个日志级别来决定输出什么。将日志级别设置为详细,运行程序,阅读日志。
  • 什么都不显示,它应该做什么呢?无论如何,主要区别在于VS中的环境与全局环境不同。
  • 工作目录不同,这意味着文件和目录的相对路径不同。您可能在 IDE 中设置了一些在双击可执行文件时未设置的环境变量或命令行参数。您需要确保正确处理此类错误,并且您有可用的默认值和备用值。另外,请先尝试从控制台窗口运行,以确保它在那里工作。从不同的目录运行。测试一下。并且有大量的日志记录。
  • @stijn 我会更具体地说,它是一个远程助手应用程序,我的客户端 c# 应该显示图标和服务器中正在运行的程序的名称。它在 vs 中完美运行,经过多次测试。
  • 好吧,我解决了。这是一个迟缓的错误。我创建了一个 n.a. .bmp 文件,当服务器无法提取图标时发送。我不得不将此文件移动到 .exe 的同一目录中。无论如何感谢您的帮助

标签: c# c++ visual-studio-2015 executable


【解决方案1】:

这很难孤立地回答; 是的可能存在差异,尤其是与配置路径和一些运行时组件(尤其是 winforms 有细微差别)有关的差异。然而! 听起来这与您的应用程序更相关。对于未处理的错误,您通常会期望 either 由操作系统报告的非常负载崩溃。但是,如果您的代码默默地吞下错误,那将不会发生。所以,要检查的事情:

  • exe 是否静默运行?查看进程列表
  • 您是否有没有报告实际问题的大 catch
  • 错误日志中有什么内容吗?
  • 您是否对标准输入执行了任何可能表现不同的特定操作?

但真正的关键是添加日志记录,也许在编译或命令行开关之后,它会告诉你它有多远。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-07
    • 2019-12-07
    • 1970-01-01
    • 2020-09-03
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多