繁体   English   中英

WPF应用程序无法在其他计算机上运行

[英]WPF application doesn't work in other computers

我建立了一个简单的WPF应用程序只是为了获得一些经验。 当用户单击按钮时,它所做的就是从数据库获取信息。
该应用程序在我的PC上运行良好(使用publish选项),但是当我尝试在便携式计算机和朋友的PC上运行该应用程序时,该应用程序崩溃的速度与按下按钮一样快。
我99%确信它与Entity Framework有关,我使用它来联系数据库(单击按钮时触发的所有功能都是联系并从数据库中检索信息)。

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

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

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

UPDATE

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

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

编码愉快!

当用户单击按钮时,它所做的就是从数据库获取信息。

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

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

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

        try
        {
            //here your database logic

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

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

我终于解决了!

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

2)将以上所有设置为“本地复制”。

3) App.config添加到您的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和所有其他回答/建议异常代码的人。
我不愿意在异常方便时才考虑使用异常,这真是愚蠢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM