【问题标题】:EXE behaves differently when I place in start up folder当我放置在启动文件夹中时,EXE 的行为有所不同
【发布时间】:2011-06-09 14:20:44
【问题描述】:

我有一个监控数据库的 C# 实用程序。这是我自己使用的——我没有创建安装包,但我确实将配置设置为发布。我将 .exe 从发布文件夹中拉出,将其放在桌面上,双击它,它工作正常。

下一个合乎逻辑的步骤是将它放在我的启动文件夹中。结果出乎意料。尽管有代码:

private void Form1_Shown(object sender, EventArgs e)
    {
        InitializeControls();
        this.Hide();
    }

表单从未隐藏。除此之外,VS 2010 也启动了。有谁知道为什么当我将 .exe 放在 Startup 文件夹中时行为会有所不同。只需双击它?

注释。它通过从配置文件中提取连接字符串来连接数据库:

ConfigurationManager.ConnectionStrings["default"].ToString();

配置文件包含的唯一内容是连接字符串,我也将配置文件放在启动文件夹中。至于它的作用,它只是查询数据库并在表单上填充 7 或 8 个标签。它最小化到系统托盘,通过计时器每小时运行一次,但也有一个刷新按钮。

【问题讨论】:

  • 它可能崩溃并启动了一个调试器,由于任何其他原因它不应该启动 vs2010。添加有关它如何连接到数据库、将用户设置保存在何处以及如何工作的信息。
  • 添加调试代码,看看你的EXE能否访问配置文件。我认为整个working directory 的事情可能是你的问题
  • 感谢您的回复,这是有道理的。很难判断是否发生了崩溃,因为表格看起来很正常,但我相信你是正确的。我编辑了最初的帖子以提供更多信息,因为我的评论一直超出字数限制。 (这是我的第一篇文章,我还不习惯论坛)问题是否与使用启动文件夹中的配置文件有关?
  • Earlz,它几乎可以在所有条件下工作。我们说话的时候我正在运行它。它崩溃的唯一一次是当我将它放入启动文件夹并重新启动时。当我将 .exe 和 config 文件放入启动文件夹并双击 .exe 时,也可以。只有在启动时尝试运行它才会失败。您认为启动文件夹不能与配置文件一起使用吗?您是否建议有一种方法可以添加调试代码,以便当 exe 崩溃和 VS 打开时,我可以调试?我从来没有这样做过。我只从 IDE 调试过。
  • 啊,是的,我不知道。我只是添加一些东西以在启动时打印出工作目录,并确保您可以从中访问配置文件。

标签: c# visual-studio-2010


【解决方案1】:

很可能您的工作目录在启动文件链接文件中设置不正确。所以应用程序缺少 *.exe.config 文件(或者您只是忘记复制它?)。

【讨论】:

  • 好的,如何设置工作目录?我在启动文件夹中有 exe 和配置。我应该在发布文件夹中添加一个 vshost 还是其他文件之一?
  • 检查链接文件属性(通过右键单击)查找“工作目录”。否则,将您的 exe 和配置复制到任何目录(例如 C:\utils),然后右键单击将 exe 拖动到开始菜单的启动文件夹并创建一个链接,应该可以正常工作。
  • 我右键单击启动文件夹和 exe 本身,但我没有找到“工作目录”。我实际上喜欢你的第二个想法——这很有意义——我会在下次重新启动时尝试一下。只要可行,您是否需要我将您的解决方案标记为已接受或类似的内容?
  • 您无需重新启动 PC 即可测试启动链接是否正常工作。只需通过您的开始菜单导航到“启动”,然后单击您的链接以查看它是否正常工作。我不能在链接属性对话框中说出确切的字段名称 - 我的 Windows 是俄语的,也许 win 版本之间也存在差异。
  • OK 刚刚重启,我用 Startup 文件夹中的快捷方式尝试了 C 盘idea 上的 utils 文件夹,但还是不行。它没有崩溃,但也没有移动到系统托盘。我不得不用任务管理器杀死它。我想我会保留 utils 文件夹,然后从桌面上的快捷方式启动应用程序。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 2014-11-26
相关资源
最近更新 更多