C# winform程式怎麼打包成安裝專案(圖解)
開發環境:VS2010+SQL Server 2008
作業系統:win7_32bit 旗艦版
開發語言:C#
專案名稱:學生寄宿管理系統
下面開始介紹:如何給windows應用程式打包?
第一步:
開啟VS2010,開啟你要打包的專案,然後右擊"解決方案",”新增“,"新建專案",彈出如下圖所示介面:
點選”安裝和部署“左邊的三角形,選擇下面的”Visual studio Installer“,再選擇”安裝專案“,同時將下面的命名改為”Setup“點選確定。
第二步:
點選解決方案裡面生成的”Setup“,將屬性中的ProtectName改為”學生寄宿系統 V1.0 “(你的專案名字)
第三步:
右擊解決方案裡面的”Setup“,然後再選擇”屬性“。彈出屬性頁介面如下第二張圖:
再點選裡面的系統必備。
重要一點:勾選"從與我的應用程式相同的位置下載系統必備元件(D)",其實意思就是說你勾選後,生成安裝專案時,在你安裝專案的路徑下,會有你在系統必備元件列表中勾選的元件.(系統自動完成,這一點還不錯,不需要你自己去下載元件)
1)、Windows Installer 3.1(必選)
2)、.NET Framework 3.5 (可選)參考最後說明
3)、Crystal Report Basic for Visual Studio2008(x86,x64) (可選) 專案中用到了水晶報表就需要勾選此項
第四步:
右擊”應用程式資料夾“,點選”新增“,再點選資料夾,命名為”DB“(可隨意)用於存放你的資料庫檔案。
然後再右擊剛才新增好的"DB"資料夾,”新增“,”檔案“,將你的資料庫新增進來。
第五步:
右擊”應用程式資料夾“,點選”新增“,點選”檔案“。將你的Release目錄下面的檔案全部新增進來。
第六步:
右擊”應用程式資料夾“,點選”新增“,選擇”專案輸出...“,注意:在專案欄要選擇你自己的專案(我的專案名:StudentJisu),然後選擇”主輸出“,點選確定。
第七步:
建立桌面快捷方式,右擊剛才新增的”主輸出“,然後選擇第一個”建立快捷方式“,然後你可以將快捷方式重新命名(我重新命名為:學生寄宿管理系統)
最後,滑鼠左鍵點住快捷方式,然後拖放到”使用者桌面“資料夾下面。
第八步:
建立解除安裝程式。右擊”應用程式資料夾“,點選”新增“,選擇”檔案“,然後將"C:\Windows\System32" 下面的”msiexec.exe“檔案給新增進來,如果找不到,你可以直接搜。當然,你也可以再給msiexec.exe建立一個快捷方式命名為”UnInstall“。
命名了快捷方式之後,將Setup屬性(點選解決方案裡面的setup彈出屬性)ProductCode拷貝到Uninstall屬性的Arguments裡面:
同時在前頭加上 ”/X “,注意:x後面有一個空格。
第九步:
改變桌面快捷方式的Logo。自帶的logo實在是太挫了,你可以去網上下載一個圖片,然後轉換為.ico格式。
下圖中”應用程式資料夾“是指logo存放的位置,一般存在在該處就行了。
第十步:
附加資料庫。我們現在新增一個類,用於編寫附加資料庫程式碼。
右擊”解決方案“,點選”新增“,選擇”新建專案“,然後新建一個C#類庫,並命名為”InstallDB“。
最後,將”class1.cs“刪掉。
第十一步:
新建一個類,用於寫資料庫附加到 資料庫管理系統中的 程式碼。右擊剛新建的那個”InstallDB“,點選”新增“,選擇”新建項“。
然後在彈出的介面中,選擇”安裝程式類“,並命名為”InstallDB.cs“。
第十二步:
由於附加資料庫需要使用者輸入本機資料庫的一些資訊,比如:伺服器名稱,資料庫管理員名稱和密碼等等。這時候,我們可以在安裝過程中彈出一個等待使用者輸入的框:
右擊”Setup“,點選”檢視“,選擇”使用者介面“。彈出如下第二個介面,再右擊”啟動“,點選“新增對話方塊”,選擇”文字框(A)“,同時將其拖放到”歡迎使用“下面,如下第三張圖。
最後,根據自己的需要填寫”文字框(A)“的屬性,可以參考第三張圖。
注:裡面定義的變數,主要是為了下面的附加程式碼而定義的。
第十三步:
新增 附加資料庫的 主輸出。右擊”setup“,選擇”檢視“,”自定義操作“。
然後,右擊”安裝“,選擇”應用程式資料夾“,選擇安裝程式類”InstallDB“,還是選擇”主輸出“,確定。
接著,在CostomActionData裡面複製貼上如下:
- <span style="font-family:Comic Sans MS;">/dbname=[DBNAME] /server=[SERVER] /user=[USER] /pwd=[PWD] /targetdir="[TARGETDIR]\"</span>
第十四步:
在InstallDB.cs中編寫附加資料庫程式碼。先點選”單機此處切換到程式碼檢視“。
然後新增 幾個 名稱空間。
當然,要使用MessageBox()函式,需要新增using System.Windows.Forms;之外,同時需要新增System.Windows.Forms引用(具體操作:右擊InstallDB,選擇新增引用,選擇.NET)
當然,最後寫好的程式碼,如下所示:
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Configuration.Install;
- using System.Linq;
- using System.Data.SqlClient;
- using System.Windows.Forms;
- using System.IO;
- using System.Security.AccessControl;
- namespace InstallDB
- {
- [RunInstaller(true)]
- public partial class InstallDB : System.Configuration.Install.Installer
- {
- public InstallDB()
- {
- InitializeComponent();
- }
- //建立資料庫
- privatevoid CreateDataBase(string strSql, string DataName, string strMdf, string strLdf, string path)
- {
- SqlConnection myConn = new SqlConnection(strSql);
- String str = null;
- try
- {
- str = @" EXEC sp_attach_db @dbname='" + DataName + "',@filename1='" + strMdf + "',@filename2='" + strLdf + "'";
- SqlCommand myCommand = new SqlCommand(str, myConn);
- myConn.Open();
- myCommand.ExecuteNonQuery();
- MessageBox.Show("資料庫安裝成功!點選確定繼續");//需Using System.Windows.Forms
- }
- catch (Exception e)
- {
- MessageBox.Show("資料庫安裝失敗!" + e.Message + "\n\n" + "您可以手動附加資料");
- System.Diagnostics.Process.Start(path);//開啟安裝目錄
- }
- finally
- {
- myConn.Close();
- }
- }
- //許可權管理
- privatestaticvoid SetFullControl(string path)
- {
- FileInfo info = new FileInfo(path);
- FileSecurity fs = info.GetAccessControl();
- fs.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));
- info.SetAccessControl(fs);
- }
- //過載的Install函式
- publicoverridevoid Install(System.Collections.IDictionary stateSaver)
- {
- string server = this.Context.Parameters["server"];//伺服器名稱
- string uid = this.Context.Parameters["user"];//SQlServer使用者名稱
- string pwd = this.Context.Parameters["pwd"];//密碼
- string path = this.Context.Parameters["targetdir"];//安裝目錄
- string ch = path.Substring(path.Length - 1, 1);
- if (ch == @"\") //對路徑進行處理,判斷末尾是否有'\'
- path = path.Substring(0, path.Length - 1);//有則刪掉
- string strSql = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=master";//連線資料庫字串
- string DataName = @"StuBoardDB";//資料庫名
- string strMdf = path + @"XSJSGLXT.mdf";//MDF檔案路徑,這裡需注意檔名要與剛新增的資料庫檔名一樣!
- SetFullControl(strMdf); //設定許可權為EveryOne
- string strLdf = path + @"XSJSGLXT_log.ldf";//LDF檔案路徑
- SetFullControl(strLdf); //設定許可權為EveryOne
- base.Install(stateSaver);
- this.CreateDataBase(strSql, DataName, strMdf, strLdf, path);//開始建立資料庫
- }
- }
- }
可能你看到程式碼比較多,其實這些你都可以重用,你只需要改其中的一點點就行了。如下圖(黑框裡面的東西):你懂得。
第十五步:
好了,最後,生成安裝包。
相關推薦
C# winform程式怎麼打包成安裝專案(圖解)
開發環境:VS2010+SQL Server 2008 作業系統:win7_32bit 旗艦版 開發語言:C# 專案名稱:學生寄宿管理系統 下面開始介紹:如何給windows應用程式打包? 第一步: 開啟VS2010,開啟你要打包的專案,然後右擊"解決方案",”新增“,"新建專案"
將java程式打包成安裝版exe
將java程式打包成安裝版exe 注意是將其打包成安裝版的exe而不是可執行的exe 首先需要寫好java程式,然後打包成可執行jar,接下來使用exe4j將其打包成可執行exe,詳見: https://blog.csdn.net/rico_zhou/article/details/
vs2010 Windows程式打包成安裝包方法
原文連結:https://www.cnblogs.com/daban/archive/2012/06/27/2565449.html 感謝! 1、 在vs2010 選擇“新建專案”—-“其他專案型別”—-“Visual Studio Installer
VS2015程式打包成安裝包
一、在這裡寶丫頭用一個已有的自己寫的小程式“MyExplorer”來進行測試,此程式裡用了一些動態連結庫DLL檔案和Access資料庫。 二、在Solution ‘MyExplorer’(解決方案)上 “右擊”—— “新增”——“新建專案”, 選擇“其他型別專案”—
圖解C#如何為winform程式打包釋出應用
1:新建安裝部署專案 開啟VS,點選新建專案,選擇:其他專案型別->安裝與部署->安裝嚮導(安裝專案也一樣),然後點選確定.(詳細見下圖) 此主題相關圖片如下: 2:安裝嚮導 關閉後開啟安裝嚮導,點選下一步,或者直接點選完成. 3:開始製作 安裝嚮導完
C# vs2008 建立Windows服務程式,打包成安裝檔案
c# 開發windows服務程式。一個簡單的服務程式示例。歸納了幾點。有不足之處,請賜教。一、建立服務程式1. 選單欄“檔案”--->“新建”--->“專案”,在專案型別中選擇“windows”,模板中--->“windows 服務”。專案名稱任意起。 新
WinFrom程式在打包成安裝包時遇到的問題
WinFrom程式打包成安裝包時遇到的問題 WinFrom程式打包成安裝包時遇到的問題 WinFrom程式在打包成安裝包時遇到的問題: 1.除錯的時候可以,安裝出來之後Button TEXT值顯示不出來 Button值分中英文版本,所有標籤的值都在配置檔案中,除錯的時候 配置檔案在D
VS2005 建立Windows服務程式,打包成安裝檔案
一、建立服務程式1. 選單欄“檔案”--->“新建”--->“專案”,在專案型別中選擇“windows”,模板中--->“windows 服務”。專案名稱任意起。 新專案中會建立 Program.cs , Service1.cs及其他的檔案或資料夾 2.
VS C#程式打包覆蓋安裝不能更新的解決方法
最近寫個小程式,打包覆蓋安裝更新時老是不起作用,還是原來的程式。 在網上四處查詢,productcode和ersion都已經更改,removepreviousversions也設定成true了,可就是不能更新。 最後對比了下程式,發現每次覆蓋安裝後安裝路徑下別的檔
sencha touch 擴充套件篇之將sencha touch打包成安裝程式(下)- 使用phonegap打包安裝程式
這講我們來講解下如何使用phonegapa建立專案環境並通過她們將sencha touch打包成app,這裡我們只講解打包android的apk,打包ios的過程有點類似,但是需要在mac環境下,最後通過xcode匯出成ipa安裝程式; 一、phonega
c#程式打包成可執行檔案
經過朋友(lcm)的耐心指導,輕鬆完成了c#程式的打包,希望能夠幫助更多的戰友輕鬆打包c#。 一:前期準備工作 使用《innosetup_5.5.9》工具實現c#程式打包,程式下載地址: htt
java程式釋出之jre篇 java程式打包成exe可執行安裝包以便安裝程式
Java開發程式,釋出時總要考慮的問題就是怎麼在使用者的機器上裝好JRE。要考慮的問題很多:使用者有沒有能力獨自安裝JRE,使用者已有的 JRE 和我們需要的版本是不是一致,會不會出現版本問題,等等。使用.NET要考慮的問題就少些。現在.NET CLR似乎已經很普及了,看
VS C# WinForm程式覆蓋安裝配置
設定Version,使當前版本號大於前一個版本號。 RemovePreviousVersions屬性設定為true。 修改Properties資料夾下的AssemblyInfo.cs檔案中的版本號
將專案打包成安裝包(Windows服務)
為什麼 專案打包成安裝包對大眾會有友好的提示安裝過程。 打包過程 建立專案(這裡是windows服務) 新增安裝程式 將serviceProcessInstaller1屬性Ac
java程式打包成exe:一鍵安裝雙擊執行——Java脫離jre安裝程式製作
轉載的,時間是2012年 所以時間可能有點久 不過 還是可以學到很多東西 接著選擇要建立的exe檔案型別,在這裡我們選擇第一個,這樣其實是為程式建立一個可以雙擊執行的啟動器,可以保證程式仍具有跨平臺的特性。如果選擇第二個,可以把程式完全編譯成exe檔案,可
C#Winform程式如何使用ClickOnce釋出並自動升級(圖解)
有不少朋友問到C#Winform程式怎麼樣配置升級,怎麼樣打包,怎麼樣釋出的,在這裡我解釋一下打包和釋出 關於打包的大家可以看我的文章C# winform程式怎麼打包成安裝專案(圖解) 其實打包是打包
將MySQL集成打包成安裝程序,實現一鍵安裝
pro 技術 admin tex 打包成 原理 mys col start 前言 實現原理: 集成一個已經配置好的MySQL文件夾,然後通過.bat文件配置MySQL的服務。實現免安裝MySQL數據庫 缺陷: 由於是集成一個已經安裝好的MySQL文
Python程式打包成exe的一些坑
今天寫了一個專案,Python專案,需要在win7上跑起來,我想,這不是簡單的不行麼,直接上Pyinstaller不就完了? 但是後來,我發覺我真是too young too simple。 為什麼這麼說呢,因為我是堅定的Linux黨,沒Windows!!!!!這就說明什麼呢,當你在linux上Pyins
C# WINFORM程式配置檔案操作方法
C# WINFORM程式配置檔案操作方法 在寫winform程式的時候,我們經常會把配置檔案寫在Settings.settings中, 但是,在這裡我們發現,儲存後,在程式中對這個配置進行修改並不能生效 程式級別的配置呢,我常用儲存在app.config中的appSettings節點中
在VS2015下依賴dll或者其它庫的窗體程式打包成一個單獨exe程式的過程
1.聽說(costura.fody)這個外掛能完美實現此功能,於是就去找如何安裝並使用。 2.在VS裡,找到工具->NuGet包管理器->管理解決方案的NuGet包,然後跳出下面的介面,填入costura.fody並搜尋。 3.選中它,然後在右方選中自己的專案,