【发布时间】: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