可貴忙裏偷閒,看到有關VS製做安裝包,按下文小試一把,還行,比不上Installshield。web
首先在打開 VS2010 》 文件 》新建項目安全
建立一個安裝項目 XXX app
在「目標計算機上的文件系統」下咱們看見 應用程序文件夾,用戶程序菜單 ,用戶桌面 , 在 應用程序文件夾 右擊添加文件夾(即安裝後所在安裝路徑下生成的包含程序相關組件的文件夾)測試
本列中添加了 測試安裝程序文件夾 ,在 測試安裝程序文件夾 上右擊 ,選擇 添加,根據項目須要 ,將全部程序所須要的組件都添加進去,本例中 將XXX.exe ,XXX.dll ,圖標等文件添加spa
要實現卸載功能的話,須要將 C:\Windows\System32\msiexec.exe 程序也添加到 測試安裝程序文件夾 中,而後在進一步操做orm
接下來,分別給主程序 XXX.exe 和 msiexec.exe 建快捷方式ci
同理在 用戶程序菜單 中添加一個文件夾 ,並將 XXX.exe 和 msiexec.exe 的快捷方式 剪切到 該文件夾下,這樣在用戶點擊 開始 菜單 後 就會看見咱們安裝程序的文件,提供了運行程序的快捷方式和卸載該程序的快捷方式。開發
接下來設置卸載程序的參數 :在 解決方案下 ,單擊該安裝項目名稱 ,進入其 屬性 頁面 ,找到其 ProductCode 的屬性值,將屬性值複製下,本例中該屬性值爲:{226D41BC-A197-41B0-9156-2EC489089D99} (即本安裝軟件的ID)it
而後在 卸載程序所建的快捷方式 的屬性頁上 的 Arguments 屬性項 ,將其值賦值爲 :/x{226D41BC-A197-41B0-9156-2EC489089D99} ,/x 爲命令 ,後面跟此安裝的軟件的ID ,這樣,卸載程序才能知道運行時該卸載那個軟件。編譯
最後,在 用戶桌面 添加 主程序的 快捷方式
最後咱們還要設置一下相關屬性,因爲次軟件是在.Net 下開發的,因此若是目標計算機上並無安裝相應的.Net 庫文件,則安裝後程序仍然沒法運行,所以,須要設置此安裝程序的屬性,選中此安裝程序,右擊 ,進入 屬性 頁面。
單擊 系統必備
程序會自動識別所須要的.Net庫文件和安裝程序,默認便可,在 指定系統必備組件的安裝位置 選項,第一項的意思是,在安裝時,若目標計算機沒有.Net庫文件的話,安裝程序將提示用戶從網上下載相應的.Net庫文件。第二項的意思是 ,直接從本地計算機上將相應的.Net庫文件拷貝到 此安裝程序的 Debug 目錄下,在目標計算機安裝時,若安裝程序檢測到計算機未安裝.Net庫文件,則先安裝.Net庫文件,再安裝該軟件,無需下載.Net庫文件。 所以個人程序中選擇第二項,單擊 肯定。
最後 生成該安裝包, 在Debug 目錄下 找到 setup.exe 文件便是咱們的安裝包。
最基本的安裝程序就是這些,若是複雜的大型應用可能涉及到 註冊表及啓動條件,安裝引導界面等屬性的設置,咱們在 安裝程序 右擊 選擇 視圖 ,能夠在裏面進行相關設置。
使用Installshield時,遇到過文件無權限修改,VS也是存在,按照下文處理:
問題:在本地計算機上能夠實現對應用程序的初始化配置,但在裸機上安裝程序後,沒法進行初始化配置,程序報錯:對路徑「×××」訪問拒絕 ;一查,是權限問題,在邏輯上一
普通用戶的身份,運行程序是沒法獲取操做配置文件的權限。在網上搜了下解決方法,以下:
首先打開 項目的屬性頁 進入 「 安全性 」 一欄 ,勾選 「啓用ClickOnce安全設置」
接下來會發如今 解決方案中的 Properties 中發現 app.manifest 文件,
雙擊 打開 該文件
而後 再將 「啓用ClickOnce安全設置」 取消勾選 ,從新編譯 程序便可,通過修改後的程序,在安裝後運行是以管理員身份運行,就不存在 拒絕訪問的問題了。