【问题标题】:WPF application doesn't work in other computersWPF 应用程序在其他计算机上不起作用
【发布时间】:2013-01-04 12:11:27
【问题描述】:

我构建了一个简单的 WPF 应用程序只是为了获得一些经验。 它所做的只是在用户单击按钮时从数据库中获取信息。
该应用程序在我的 PC 上运行良好(使用发布选项),但是当我尝试在我的笔记本电脑和我朋友的 PC 上运行它时,应用程序崩溃的速度与按下按钮一样快。
我 99% 确定它与实体框架有关,我用它来联系数据库(单击按钮时触发的所有功能都是联系并从数据库中检索信息)。

在 google 中寻找答案后,我发现它可能与 PC 中的 .net 安装或项目引用有关。

但是,我的 PC 和笔记本电脑中的 .net FW 版本是相同的,并且引用都标记为复制本地(仅用于测试!)。

还有什么可能导致这样的问题?我真的不知道了...

更新

使用异常,我发现我得到的错误是:
The specified store provider cannot be found in the configuration, or is not valid.

我还通过在 Google 中进行更深入的搜索解决了这个问题。
可以在下面找到解决方案...

编码愉快!

【问题讨论】:

  • 只需捕获异常并将其记录到文件中,这样您就可以获得堆栈跟踪。

标签: c# .net wpf entity-framework


【解决方案1】:

它所做的只是当用户点击一个数据库时从数据库中获取信息 按钮。

在您的应用程序中,您通过实体框架访问数据库。我只能猜测您与数据库的连接失败,因此您的应用程序正在崩溃。确保为应用程序准备好数据库。

记录您的异常也是一个好主意,这样您就可以在应用程序崩溃时查看详细信息。

【讨论】:

  • 但是当我尝试运行它时它可以工作......另外,数据库是一个远程mysql数据库,所以从另一台计算机连接到它应该没有问题。
  • @xTCx,在你的应用程序中实现一些异常处理和日志记录,没有它我认为很难知道出了什么问题。 (如果框架也相同)。
【解决方案2】:

尝试在按钮事件处理程序中围绕您的代码使用 Try Catch 块,例如:

        try
        {
            //here your database logic

        }
        catch (Exception ex )
        {
            MessageBox.Show(ex.Message);
            //todo do something usefull
        }

这将为您提供有关应用程序失败原因的信息。

【讨论】:

    【解决方案3】:

    我终于解决了!

    这是怎么做的:
    1) 确保您的项目引用了 MySql.Data.dll、MySql.Web.dll、MySql.Data.Entity.dll 和 System.Data.Entity.dll。

    2) 将以上所有设置为 Copy-Local。

    3) 将以下行添加到您的 App.config 文件中:

      <system.data>
      <DbProviderFactories>
        <clear />
        <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"
        description=".Net Framework Data Provider for MySQL"
        type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, 
        Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      </DbProviderFactories>
    </system.data>
    

    4) 单击 MySQL.Data 参考,并检查它的版本。选择它后,可以在解决方案资源管理器下方的“属性”窗口中找到它。

    5) 将Version=6.4.4.0 部分更改为您的MySql.Data.dll 的版本。我的是 6.5.4.0,这是最新的,但旧版本应该也能正常工作。

    另外,我要感谢 Ralf de Kleine 和所有回答提出/建议异常代码的人。
    在异常方便的情况下不考虑使用异常,真是愚蠢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-27
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 2012-12-13
      • 2015-11-02
      • 1970-01-01
      相关资源
      最近更新 更多