詳解VS2008下打包安裝程序的一些技巧(含win7下提權限、卸載以及安裝時定向到網頁)

筆者才疏學淺,文中敘述不當之處還望各位園友指出~

      1、怎麼使得程序窗口左上角和任務欄有圖標,如下圖所示:

                    

           其實這個問題不應該放到程序打包這部分講,只不過對於一些初學者而言,在這提下也許會有很大的幫助(想到自己剛學.net那會了,呵呵)。方法之一的話就是先添加一個圖標文件到項目中,然後切換到每個界面設計器,右鍵窗體的屬性,在屬性窗口有個Icon選項,下面的也就不用多說了吧~

  

     2、 先新建一個空的解決方法,File->New->Project->Other Project Types->Visual Studio Solution->Blank Solution,這兒取個名稱SetupDemo:

          如圖:

          

    3、在解決方案中添加個項目工程,右鍵上圖中的解決方案,點擊 Add->New Project,選中Windows Form Application模板,輸入SetupForm,結果如下:

          

        

      4、給項目添加些基本信息:

          在上圖中,右鍵SetupForm後單擊Property或者直接雙擊上圖中的Properties,會出現下圖

          

          左側很多選項卡,所以可以更改的東西很多,大家可以視需要而定製,這沒必要贅述。大家可以點擊上圖中的Assembly Information 按鈕,添加項目出品公司信息,如下圖所示:

           

          

          5、本來這應該講添加安裝部署項目了,但是對於在Windows7上開發的朋友們,還需要加上額外的一部,那就是關於程序安裝後的權限問題。大家知道,從Vista開始Windows操作系統便加入了UAC機制,所以問題就出現了:如果我們製作的程序被安裝到了系統盤了會怎樣?有心的會發現,當程序進行一些諸如IO操作的時候,這些都會被操作系統要求以管理員權限運行,否則所有的操作會被系統拒絕。

          如果直接進入安裝部署項目的操作的話,這樣打包出來的安裝包即便你以管理員權限運行安裝了。但是,出現在桌面上的圖標快捷鍵右鍵時候卻沒有“以管理員權限運行這一選項”,除非你直接切換到安裝目錄,右鍵exe文件以管理員權限啓動~

          解決方法是,右鍵SetupForm項目,添加一個應用程序描述文件,如下圖:

           

          直接點擊添加即可,這時候打開文件會出現以下內容:

          

          想必不用多說了吧,把 level="asInvoker" 按調用者權限 改成 level="requireAdministrator"管理員權限就OK啦。

          建議將該文件拖入Properties目錄下,如下所示:

          

 

        6、添加安裝部署項目,右鍵解決方案後Add->New Project->Other Project Types->Setup and Deployment,輸入MySetup後確定,結果如下:

                

        

         7、右鍵上圖中的MySetup->View->File System,確定後如下圖

            

            解釋下上圖中幾個文件夾的意義:

            Application Folder——所有的項目的Release文件夾或Debug文件夾下的資源文件、可執行程序以及描述性文件等都需要放到這

            User‘s Desktop——用戶桌面,在這下添加快桌面捷鍵,安裝完了會在用戶桌面產生快捷鍵

            User's Programs Menu——用戶開始菜單,也是添加快捷鍵的地方,不過是在用戶開始菜單,多個項目打包在一塊的話,最好在該文件夾下建個文件夾

            好了,一步步來

           1)Application Folder 

            先是右鍵Application Folder->Add ->Project output,出現以下的窗口:

            

            由於只有一個項目,所以上面的下拉菜單中只有SetupForm一個選項,這兒我們選擇Primary output,即可。

            當然,如果項目中的文件種類比較多,你也可以右鍵Application Folder->Add->File,然後瀏覽到項目的目錄,將項目的Release或Debug文件夾裏面的東西一股腦兒的添加進來~        

            2)User's Desktop

                 在右側分割的窗口中右鍵->Create New Shortcut,在出現的窗口中雙擊Application Folder,選中剛剛添加那個Project Output文件即可。這時候安裝到桌面時候快捷鍵圖標還是默認圖標,如果定製自己的圖標的話,則需要在右鍵剛剛建立的快捷鍵,到屬性窗口有個Icon屬性,單擊瀏覽,如下所示:

                     

                            單擊Browse                                                                    Icon選擇窗體

 

                

               雙擊Application Folder,如果在第 1)步驟中你添加了Icon文件的話,可以看到這些圖標並可以選擇,沒有的話那就回到步驟1)添加唄~

            

              3)User's Programs Menu

              步驟同上,不過需要提醒的是多個項目打成一個安裝包的時候,這下面最好先建個文件夾然後再添加那幾個快捷鍵~

        

          8、到這一步,便可以右鍵MySetup後Build下,然後找到MySetup目錄下的Release或者Debug文件下,便會有安裝包啦~

 

          9、沒完呢,要想添加個卸載程序怎麼辦呢?

               方法:在7中的第1)步驟,給Application Folder還得添加個東西,右鍵Application Folder->Add->File,然後在你的系統盤下的Windows/System32目錄下添加 msiexec.exe,該文件是什麼想必不用多說了把~添加了後,關鍵是在開始菜單下添加個刪除的快捷鍵~於是,在7中的第3)步驟中添加的文件夾下,再創建一個快捷鍵,命名爲Uninstall,如下:

                     

            

               

          

              右鍵Uninstall快捷鍵,打開其屬性窗口,有個Arguments屬性,如下所示:

                

             輸入 /x 安裝包的Productcode,這個ProductCode怎麼獲得呢,方法是左鍵單擊MySetup安裝包項目,然後點擊屬性窗口,會在該窗口找到Product code 屬性,將該code複製到/x 後面即可,下圖:

              

             這時候卸載功能已經添加進去了~

 

           10、還沒完呢,如果想要安裝程序在安裝時候或者卸載的時候打開瀏覽器定位到指定的網址怎麼辦?

                 這個問題本人只在XP系統下解決了,win7系統下貌似不起作用,囧~期待園友的解決方案

                 說說在XP下怎麼解決的把:

                 大家右鍵部署項目MySetup->View->Custom Actions 選項,如下所示:

                 

                出現Custom Actions編輯界面:

                 

                以上是程序安裝部署到卸載的四個階段,每個階段都可以添加執行exe、dll或者vbs類型的命令,由此看來至少可以有三種方法實現~下面我便用後兩種分別完成這個功能~

               1)VBS腳本

               新建個腳本,內容如下:

               Set openWeb=CreateObject("Wscript.shell") 

               openWeb.run("www.cnblogs.com/royenhome")

               保存爲Internet.vbs,然後將該腳本添加到Application Folder,在Custom Actions編輯界面的相應階段將該腳本添加進去~添加方法,呵呵,不用多說了把~

             2)dll方法

             在解決方案下新建個類庫項目,取名爲OpenWebDll,如圖:

             

             刪除class1.cs,然後給類庫添加個Intaller類,如下所示:

             

              該類繼承了Installer類,我們打開添加的類文件,在文件中override相應的方法,如希望在卸載時候打開網址,如下所示:

               

               Build下該類庫,然後在MySetup的Application Folder文件夾下添加該項目的Project Output,然後切換到Custom Actions編輯界面的Uninstall添加該Output,同時確保Install下也添加該Output文件,否則安裝會提示找不到xxx.installstate文件~具體操作見下圖:

                      

             Build下就OK了

   

            11、至此,本文真的完了~ 

From:http://www.cnblogs.com/royenhome/archive/2010/04/01/1702587.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章