您好,登錄后才能下訂單哦!
這篇文章主要講解了“C#安裝程序中打包MSDE的詳細(xì)步驟”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C#安裝程序中打包MSDE的詳細(xì)步驟”吧!
在Visual Studio 2003的工程中添加Microsoft SQL Server 2000 Desktop Engine (MSDE)的自動安裝合并模塊MSM:
1.下載MSDE2000的sp3a安裝包。
2.解壓到本地硬盤,其中的MSM文件夾中的東東就是MSDE2000合并模塊。
3.在你的工程中添加一個(gè)安裝工程假設(shè)為MySetup,按照正常的步驟添加工程輸出(Project Output),選擇輸出文件(primary output)和內(nèi)容文件(content files)兩項(xiàng)。
4.添加合并模塊(Merge Moudle),選擇瀏覽,指定到你的MSDE的MSM文件夾,選擇MSM(不包括msm1033和msm2052)下的所有的文件(REPL.MSM、REPL_RES.MSM、 DMO_RES.MSM和DMO.MSM可以不選),打開。
5.設(shè)置安裝工程的屬性(Properties)中的SearchPath,指定為你的MSM所在路徑(MSM和MSM1033和MSM2052)。
6.設(shè)置好安裝程序的其他屬性,這時(shí)就可以對你的安裝工程進(jìn)行編譯了。
7.我們需要修改打好的安裝包,使它可以在安裝完程序后自動安裝MSDE的一個(gè)實(shí)例(假設(shè)實(shí)例名為:MyServer)。我們需要用到MS的一個(gè)工具ORCA
8.用ORCA打開安裝包文件MySetup.msi
InstallExecuteSequence表
GetSqlStates.XXXXXX 103->421
InstallInitialize 1800->1799
RemoveExistingProducts 1825->1800
InstallUISequence表
GetSqlStates.XXXXXX 103->421
Property表添加
SqlInstanceName: MSDEDH實(shí)例服務(wù)名
SqlSecurityMode: SQL 用SQL模式登錄
SqlSaPwd: sa的密碼
DISABLENETWORKPROTOCOLS=0:網(wǎng)絡(luò)訪問的話也要加這項(xiàng)
重寫C#安裝程序Installer
下面方法適用于C#安裝程序,沒有添加SqlInstanceName:這個(gè)屬性,用機(jī)器名訪問msde
public override void Commit(IDictionary savedState) { base.Commit (savedState); //啟動windows服務(wù) new System.ServiceProcess.ServiceController("MSSQLSERVER").Start(); //附加數(shù)據(jù)庫 SqlConnection Connection = new SqlConnection("password=**;user id=sa;data source="+SystemInformation.ComputerName); SqlCommand Cmd = new SqlCommand("sp_attach_db",Connection); Cmd.CommandType = CommandType.StoredProcedure; SqlParameter loginname=Cmd.Parameters.Add("@dbname",SqlDbType.NVarChar,20); loginname.value ="yourname"; SqlParameter nickname=Cmd.Parameters.Add("@filename1",SqlDbType.NVarChar,50); nickname.value =Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)+"yourname.mdf"; SqlParameter password=Cmd.Parameters.Add("@filename2",SqlDbType.NVarChar,50); password.value =Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)+"yourname.ldf"; Connection.Open(); Cmd.ExecuteNonQuery(); Connection.Close(); }
用附加數(shù)據(jù)庫,我認(rèn)為是***的解決辦法。
在沒有SQL環(huán)境的機(jī)器上運(yùn)行你的C#安裝程序,會自動安裝MSDE,并附加你的數(shù)據(jù)庫,重起機(jī)器后,自動啟動Sql Server的實(shí)例。
感謝各位的閱讀,以上就是“C#安裝程序中打包MSDE的詳細(xì)步驟”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C#安裝程序中打包MSDE的詳細(xì)步驟這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。