程式是C# winfrom的,資料庫用的是mysql
MySql.Data 6.10.9.0
MySql.Data.Entity.EF6 6.10.8.0
用的是VS 2019的SETUP 打包的
在開發機上,打包完以后可以正常使用并鏈接到資料庫
換了一臺機器,就報
具有固定名稱 mysql.data.mysqlclient 的 ado.net 提供程式未在計算機或應用程式組態檔中注冊或無法加載
是不是打包還少東西,還是什么。
uj5u.com熱心網友回復:
MySql沒有安裝吧uj5u.com熱心網友回復:
有的,開發機上面,一切都正常MYSQL 是遠程地址
uj5u.com熱心網友回復:
是不是驅動沒有在機器上面安裝uj5u.com熱心網友回復:
我開發機上面,多二個東西mysql connect net
MySQL for Visual Studio
但這二個東西,不就為了
MySql.Data 6.10.9.0
MySql.Data.Entity.EF6 6.10.8.0
這二個東西庫嘛
在說了這二個依賴我以經打到安裝程式里面去了
不可能讓下面的客戶機,都一臺一臺去安裝這二個MYSQL的東西
uj5u.com熱心網友回復:
需要打包mysql客戶端驅動MySQL完全可以和程式一起用打包工具 做成一個安裝包,然后在沒有安裝過mysql的機器上直接運行,不用另外的安裝MySQL資料庫,方法如下:
我用的是mysql5.0.
1.首先是在開發機器上安裝mysql資料庫(因為我們要用到mysql的資料庫程式)
2.然后進到mysql的安裝目錄 復制 bin data share my.ini 其他的什么地方(bin data share 是檔案夾 my.ini是檔案),注意要保持這些目錄和檔案的相對的路徑關系(就是要保證他們在同一個目錄中,保證mysql服務程式能找到他們)。
3.要自己寫一個小程式 來設定一下my.ini檔案的basedir和datadir 把他們的值設定正確.
4.然后用你的這小程式 帶引數啟動mysqld-nt.exe 引數如下
char charCmd[1024]; //這個可以設定的更大一些 適合長路徑
std::string strmyPath = GetAplicationPath();
std::string strFile = strmyPath + "mysql/bin/mysqld-nt.exe";
std::string strMysqlIniFile = strmyPath + "mysql/my.ini";
sprintf(charCmd,"%s --install MySQLServer --defaults-file=%s",strFile .c_str(),strMysqlIniFile .c_str());
RunProcess(szCmd);
本經驗適合mysql5.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/208864.html
標籤:C#
