1. 程式人生 > >C# winform程式怎麼打包成安裝專案(圖解)

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裡面複製貼上如下:

  1. <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)


當然,最後寫好的程式碼,如下所示:

  1. using System;    
  2. using System.Collections;    
  3. using System.Collections.Generic;    
  4. using System.ComponentModel;    
  5. using System.Configuration.Install;    
  6. using System.Linq;    
  7. using System.Data.SqlClient;    
  8. using System.Windows.Forms;    
  9. using System.IO;    
  10. using System.Security.AccessControl;    
  11. namespace InstallDB    
  12. {    
  13.     [RunInstaller(true)]    
  14.     public partial class InstallDB : System.Configuration.Install.Installer    
  15.     {    
  16.         public InstallDB()    
  17.         {    
  18.             InitializeComponent();    
  19.         }    
  20.         //建立資料庫  
  21.         privatevoid CreateDataBase(string strSql, string DataName, string strMdf, string strLdf, string path)    
  22.         {    
  23.             SqlConnection myConn = new SqlConnection(strSql);    
  24.             String str = null;    
  25.             try
  26.             {    
  27.                 str = @" EXEC sp_attach_db @dbname='" + DataName + "',@filename1='" + strMdf + "',@filename2='" + strLdf + "'";    
  28.                 SqlCommand myCommand = new SqlCommand(str, myConn);    
  29.                 myConn.Open();    
  30.                 myCommand.ExecuteNonQuery();    
  31.                 MessageBox.Show("資料庫安裝成功!點選確定繼續");//需Using System.Windows.Forms  
  32.             }    
  33.             catch (Exception e)    
  34.             {    
  35.                 MessageBox.Show("資料庫安裝失敗!" + e.Message + "\n\n" + "您可以手動附加資料");    
  36.                 System.Diagnostics.Process.Start(path);//開啟安裝目錄  
  37.             }    
  38.             finally
  39.             {    
  40.                 myConn.Close();    
  41.             }    
  42.         }    
  43.         //許可權管理  
  44.         privatestaticvoid SetFullControl(string path)    
  45.         {    
  46.             FileInfo info = new FileInfo(path);    
  47.             FileSecurity fs = info.GetAccessControl();    
  48.             fs.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));    
  49.             info.SetAccessControl(fs);    
  50.         }    
  51.         //過載的Install函式  
  52.         publicoverridevoid Install(System.Collections.IDictionary stateSaver)    
  53.         {    
  54.             string server = this.Context.Parameters["server"];//伺服器名稱  
  55.             string uid = this.Context.Parameters["user"];//SQlServer使用者名稱  
  56.             string pwd = this.Context.Parameters["pwd"];//密碼  
  57.             string path = this.Context.Parameters["targetdir"];//安裝目錄  
  58.             string ch = path.Substring(path.Length - 1, 1);    
  59.             if (ch == @"\")   //對路徑進行處理,判斷末尾是否有'\'  
  60.                 path = path.Substring(0, path.Length - 1);//有則刪掉  
  61.             string strSql = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=master";//連線資料庫字串  
  62.             string DataName = @"StuBoardDB";//資料庫名  
  63.             string strMdf = path + @"XSJSGLXT.mdf";//MDF檔案路徑,這裡需注意檔名要與剛新增的資料庫檔名一樣!  
  64.             SetFullControl(strMdf);    //設定許可權為EveryOne  
  65.             string strLdf = path + @"XSJSGLXT_log.ldf";//LDF檔案路徑  
  66.             SetFullControl(strLdf);    //設定許可權為EveryOne  
  67.             base.Install(stateSaver);    
  68.             this.CreateDataBase(strSql, DataName, strMdf, strLdf, path);//開始建立資料庫  
  69.         }    
  70.     }    
  71. }    

可能你看到程式碼比較多,其實這些你都可以重用,你只需要改其中的一點點就行了。如下圖(黑框裡面的東西):你懂得。


第十五步:

好了,最後,生成安裝包。

 


相關推薦

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.選中它,然後在右方選中自己的專案,