WPF应用程序在其他计算机中不起作用

时间:2013-01-04 12:11:27

标签: c# .net wpf entity-framework

我已经构建了一个简单的WPF应用程序,只是为了获得一些经验。 它只是在用户点击按钮时从数据库中获取信息 该应用程序在我的PC上工作正常(使用发布选项),但当我尝试在我的笔记本电脑和朋友的PC上运行它时,应用程序在按下按钮时崩溃。
我99%肯定它与Entity Framework有关,我用它来联系数据库(点击按钮时触发的所有函数都是联系并从数据库中检索信息)。

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

然而,.net FW版本在我的电脑和笔记本电脑中是相同的,参考文件都标记为copy-local(仅用于测试!)。

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

更新

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

我也通过深入搜索谷歌来解决这个问题 解决方案可以在下面找到......

快乐的编码!

3 个答案:

答案 0 :(得分:2)

  

所有这一切都是在用户点击数据库时从数据库获取信息   按钮。

在您的应用程序中,您通过Entity Framework访问数据库。我只能猜测你与数据库的连接失败了,因为你的应用程序崩溃了。确保为应用程序准备好数据库。

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

答案 1 :(得分:2)

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

        try
        {
            //here your database logic

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

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

答案 2 :(得分:1)

我终于解决了!

这是怎么做的:
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 以及其他所有回答建议/建议例外代码的人。
当我们非常方便时,不要考虑使用例外,这对我来说是愚蠢的!

相关问题