【问题标题】:C# application works very slow after Setup project安装项目后 C# 应用程序运行缓慢
【发布时间】:2013-09-12 22:34:06
【问题描述】:

我有 C# Windows 窗体应用程序,当我在 VS 中调试它时,它可以完美运行。 它有 SQLite 数据库。

然后我使用 InstallShield 创建了一个新的安装项目。

Visual Studio 2012 编译它,我安装应用程序没有错误。

但是应用程序很慢,当我更改用户控件或执行任何操作时,即使只是构建一个表单,也需要几秒钟。 非常非常慢,不适合使用...而且我什至没有任何关键代码,例如循环或其他东西...

在安装项目中,我包括:.exe.config、.exe、SQLite.dll 和 .s3db(SQLite 数据库文件)

请帮忙

谢谢

【问题讨论】:

  • 您几乎没有提供任何可以帮助诊断问题的信息。什么是慢?它是什么类型的应用程序(WPF、WinForms、控制台、Windows 服务等)?它连接到数据库吗?它连接到互联网吗?如果没有更多细节,您将不会获得太多帮助。
  • @Eric J. 感谢您提供帮助。我已经重构了这个问题。请再次检查。
  • 提供一些代码以便我们向您推荐
  • 我无法为您提供代码......大约有 2k 行代码......正如我之前所说,没有关键代码。代码很好,因为我的程序无需设置即可正常工作。当我使用 InstallShield(2012,春季限量版 - 这可能是一个问题?)部署它时,应用程序变得很慢。它认为我在那部分可能做错了什么......是否有可能我没有在安装项目中包含一些东西,但程序仍然有效?

标签: c# installation installshield


【解决方案1】:

虽然这是一个旧线程,但它对通过 googld 发表这篇文章的其他人会有所帮助。我发现解决这个问题的解决方案,在我的例子中,我以管理员身份执行了应用程序,一切都很快。

希望对你有帮助

【讨论】:

    【解决方案2】:

    我知道这已经有好几年了,但这是我在找到正确答案之前看到的 SO 帖子之一。您必须以管理员身份运行应用程序的原因可能是因为您尝试从 SQLite 数据库文件等文件中读取/写入。您必须具有提升的权限才能从 Program Files 和 Program Files(x86) 读取/写入。我在这里找到了答案:

    Integrating SQLite with a Windows application

    基本上,您需要将文件保存到另一个目录,最好是 Windows 计算机上的 AppData 文件夹。您可以通过以下方式到达那里: Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

    这会将文件放在 AppData 的 Roaming 文件夹中。

    希望这对某人有所帮助。

    【讨论】:

    • 这确实避免了必须以管理员身份运行应用程序,但它没有解释为什么 not 以管理员身份运行它只会让它变慢(假设“慢”意味着“慢,但功能正常”)。
    • @CodeCaster 同意。我认为它仍然与文件访问有关。当我的应用程序崩溃时,我偶然发现了这一点,我注意到事件日志中引用了 SQLite。但我也注意到应用程序在某些情况下会尝试运行,但运行速度会非常慢。可能它正在吞下错误并尝试尽其所能继续。
    猜你喜欢
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多