簡體   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