![](/img/trans.png)
[英]MySQL randomly closing connections, in old WinForms app .Net 1.1 and ODBC
[英]MYSQL installation with a .NET winforms app
我有一個利用MYSQL的C#應用程序。 我正處於測試版發布點,需要一個包含我的應用程序的安裝包,以及MYSQL。 所以基本上,我需要安裝MYSQL並從我的.NET安裝包中執行恢復。
任何幫助將不勝感激。
您正在嘗試安裝mysql 服務器 。 這應該是你第一個發現錯誤的線索。 大多數服務器應用程序都設計為安裝在服務器上,而不是客戶端上。 值得注意的是,服務器應用程序喜歡假設他們擁有“服務器”。 對於客戶端應用程序來說,這是一個巨大的禁忌。
現在我們已經確定我們做錯了,我們需要選擇做什么。 我們有兩個選擇:
我個人會建議盡快切換到SQLite(或類似)。 這是“正確的事情”,你不必在未來幾年內維持黑客行為。
你被警告了。 以下是您需要注意和緩解的一些事項:
所以考慮到這一點,我想說你最好的辦法是設置一個xcopyable mysql
我在另一個問題上發布了答案
我們對此采取了不同的方法。 我們通過在調用MySQL之前編寫包裝器來生成配置文件(以正確設置基本路徑等)來使MySQL xcopy-able成為可能。 然后我們使用標准設置安裝了另一個服務。 這項服務將負責為我們啟動MySQL和其他所需的后台程序(在我們的例子中為Apache)。 由於MySQL由我們部署,我們希望完全控制它。
因此,使用此方法,您可以簡單地包含MySQL軟件包以及您的安裝,並且只是擔心安裝自己的服務。
這個問題與另一個問題非常相似。 但是,答案並沒有真正幫助。
您可以從.Net部署項目中的自定義操作運行可執行文件 ,這就是我建議的。 (請在“將可執行文件作為自定義操作調用”標題下查找)
希望通過命令行可以處理所有事情。 如果沒有,嘗試像Wise或InstallShield這樣的腳本安裝程序,我認為他們可以更好地支持這樣的東西。
希望有所幫助!
@Orion Edwards
非常感謝您的步驟。 我對SAME有疑問。 事實上,我們剛剛拒絕了SQLite,因為我們的獨立應用程序需要一些程序和外鍵約束。但是現在我覺得如果將SQLite部署在客戶機上,SQLite總是更好的選擇。
現在,我必須堅持使用MySQL。 所以我使用不同類型的腳本和機制來處理不同的可能情況。 例如:
這種方法可以嗎? 或者有更好,更合適的方法來做到這一點?
將來我想我會堅持SQLite ! :-P
看看使用Visual Studio的包和部署工具。 如果您本地連接(MySQL .NET組件)而不是ODBC連接,它應該自動引入MySQL依賴項。 在任何情況下,它都允許您將其他軟件添加到安裝程序中,如果需要,可以自動解壓縮。 我使用它來使用從MySQL網站下載的MySQL庫和CoreLab的MySQL第三方庫來部署C#應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.