上一篇裡的「發行網站」已經算是很不錯的部署方式,在安全性上也能有不錯的保護,但發行網站編譯後還是一堆檔案,我們還是必須要自行「上傳」「複製」。但在Visual Studio 2010裡提供了兩種方式來把這一堆檔案變成一個「安裝檔」,不管是自行上傳安裝,還是要交給客戶都非常合適。
Visual Studio Installer安裝和部署方式
新增一個專案「ASP.NET Web應用程式」,然後選擇「檔案 加入 新增專案 Web 安裝專案」
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEjH4IpE-YaQ1o5AAnY8xW8TCS8o7xSD37sPG4uQEti4vE_cUIKQJlQgbhMEUUGfy2auN_j89TeTHItavlNMenaOuPshPGPoF7y9VrZgqqHrKkL1E-yrls1vrO_y8n1ZYgGl0eijf8YzI/s640/03AddWebProject.png) |
加入新增專案 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0TelV-wsJ305Z2uBkiKXPHIN_d1mGPETY0rA5YVFPxUISybn21fASN-7jqjKjA8yrIfnQie8mWjAb1isyP6yKFxyy4vY7JXWnXu6GoqmnnS171G4r-sOeNOdYx3j9L2kU0rT0BW6N9ZE/s640/02WebInstaller.png) |
新增Web 安裝專案 |
加入「ASP.NET Web應用程式」至「Web 安裝專案」中:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7w4S86X_Ep231-JDvuiMN7p3DFbHKkyrSfKsbzMlgZ6vKvsK6MX8F-MZn7Jrk-oxL1i14pQEtWCgKeHsNJvvPLzJ0xUvi37jdshI8bUVmMM2_yjOOqMWR4wJP-kJ1n5Gxd1q5ZEKhFLI/s640/04OutputProject.png) |
專案輸出 | | |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG5D2fypELona_fQezqZNCBKKQF3HjZhn96QZunh12KCjPTTH6zHKXUhtN5u2OiRfn7GDz5tavKVseeRUciQ-7QmyffXq0HaI_pClDhOQScBERBS8DFATL_x08Bhj5sCuD3Zf8OFuK88c/s640/05ContentFiles.png) |
選擇專案 |
在你的方案總管中可能有多個Web專案,你必須指定那一個專案的內容要放入「安裝檔」之中,然後就可以開始建置的動作,建置之前,我們可以先調整「Web 安裝專案」屬性:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeyYqS7xodzWFUBkwDiqDedpEuIuPmXFOwcqwFYPE_9Uabic7XEj-9LDXf90bKavbMMmrpnbn6bCozj9jULgGVFJ_T58hzgxwgh9VJf5zJ3BCQDjH8BWaXJBjYdrUFAWq0aNSt1GXPvNA/s640/051WebSetup%E5%B1%AC%E6%80%A7.png) |
屬性修改 |
基本上屬性內容都很簡單,像公司名稱…請自行參考「
Windows Installer 部署屬性」。別外,我們在方案總管的WebSetup按左鍵按屬性
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf6031Anz23Bi37KLXQPIUH7Ix2WiaTIy3Zx3LIpBbp7WsRyOCpFcQa6ncHewY_WosbLeBquad2X8xwzog16NriPNrSu4ia7jbbDxszdI0N0vWvsWgDG1C0hdCbd-Phqt1Hvg3fAlF4Bk/s640/052WebSetup%E5%BF%85%E8%A6%81%E6%A2%9D%E4%BB%B6.png) |
專案輸出屬性 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzwMfD7AkYY9XKlHzdVZ-_5gB0oRgn80O8K1jUca2N1cfuEOcXS4CpVE2NNwOKDMPKSf-sxKlfps8enqzcqcZ1MtcE1NPhGes4t2ENkfUYJe5A64nGPFT30hF4Bz8dBvXP1InOnrzHeQk/s640/053WebSetup%E5%BF%85%E8%A6%81%E6%A2%9D%E4%BB%B6%E8%A8%AD%E5%AE%9A.png) |
必要條件 |
這個必須條件就是重點了,你可以在這裡設定在使用安裝檔時系統必要的環境,安裝檔會進行必要條件的確認,如果確認通過才能順利安裝。
最後進行建置安裝檔的動作:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9g5CDe9F2AyyhNVHEaDTmmgRCSbQizYkllQRwY6DHr5Ubm9Hi4iXPzAxQjO9DeQdfB3DkavkaUh096SfXDMMqL3b8vW5aQ9_k-850czGhvMRfdkK2hRowhqBL71W925XL0Euc4qs-epA/s640/06ComplierWebDeploy.png) |
建置Web安裝專案 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6zFzdmK29GMxVD3ceG8378KgI64IGFayNT1ZGQqNYigNufy_EZYoyKLzwVlSpsVXCQsbel8PZe5lO3AajScZ0wKWxWyx7oY-Tks0hEJUxkLeAcj-LJktbftizJY8sks_CYvy1LR5Ntew/s640/07SaveAs.png) |
要求儲存專案檔 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjXIQ6eXmqv0JFQdiB2doVBE0nsSp0RZ82wLkTrqnELvlaQ_uHPJwxuR0TjiMJc4cITOh3Jxz3yHjKNemlXBqhGJU00oCAkSLCxb5YGrRVy6_MjEsEceTNLvMzJnp-SSYwK-apdbVLCh8/s640/08ComplierInfo.png) |
訊息 |
注意輸出的路徑,然後到此路徑之下就可以找到兩個安裝檔Setup.exe及WebSetup.msi。
安裝驗證序號
在使用「Visual Studio Installer安裝和部署」的方式時有一個很棒的功能,就是可以在用戶安裝時要求輸入序號,而序號驗證連一行程式都不用寫,有沒有很棒!我們來為安裝檔加上序號驗證功能:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvbqpHQe4IuLIjifXiz7tIFPePfDsp9nt9hsAU4T63HCr_Mjsb6_bFQjg7YR6DjuuW5KDXdlVvhgSfYz-KhQiG4t7RBE2HtDZxuPhHLU5CiH0qOMddxJX7q1CYmRR9hDsqOioAs9umQoA/s640/09SN01.png) |
使用者介面編輯器 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1ILWUVUqyBYTNy11NOnIXwIPyyaMZ0EmxzabK7N13IXDanIH_dUbUOS3bhoJmpNpOLTLSczrfMpF0Wxc-PsST5zJ9Ed_bFN_FVi3fgRLeI3JMlK8cH7besM9ixTU5us3gQseowg52iqA/s640/09SN02.png) |
加入對話方塊 |
在你想要驗證的地方按左鍵,然後選擇「加入對話方塊」,然後選擇「客戶資訊」,
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHjJxqF4Y-RPxc1MLEwxHPsytjMIaxoBed-MmjhXc8YGPAPJ2vTK4u5Qeb9h_cJneqAfgnd_4UZ8KKPUuCsS64ms4otCKIyKj30S0OuGD-mhBXjuiQ3dIIWERMefbqDj0IzvkR0BUEzvw/s640/09SN03.png) |
客戶訊息 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-eH6ZIhH51ZaUpqWeBWLsQVdX9VKLsJwt76i-jv7hj1mCIdAf8wk_lBhDmf_DWdWfxEv_T9PaPmFKsPCTflpIsIEp5MxUxeCCZrMe-wHLwiR5vW3cbdLPslRpVELwDILlfwuyIUwuZQ8/s640/09SN04.png) |
調整順序 |
調整一下到合適的順序,我是放到「歡迎」的後面。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwrk3yPZxyD4JQgLlL81zpMT-Nh-G-Dl1gHRlVwM7o4Gz9vQpXsxowlL_HxMBDljsN_lHAgKoJGC7Gei2zmAOE9R3NF2GbOAV5oIlq3-THTDYe9NFmVjWHOom26dYnXgO-t8Id70ypSsU/s640/09SN05.png) |
客戶資訊屬性 |
SerialNumberTemplate引用MSDN:
指定在目標電腦上安裝時,用於驗證 [客戶資訊] 對話方塊上產品序號輸入的範本。
SerialNumberTemplate 屬性會決定文字方塊在對話方塊中顯示的方式,以及是否只驗證產品序號的格式,或者根據 Windows Installer 的演算法驗證。
例如,將 SerialNumberTemplate 屬性設定為 "<### - %%%%>" 會建立兩個文字方塊,中間以空格圍住的破折號分開。驗證第一個方塊 (###) 只需驗證使用者有輸入三個數字。第二個方塊 (%%%%) 會利用演算法驗證,將數字相加後除以 7。
如果餘為數 0,則驗證成功,否則驗證失敗。
可編輯字元會在 [客戶資訊] 對話方塊中顯示為文字方塊裡的預留位置,其他的任何字元則會顯示為文字方塊之間的標籤。
字元 | 意義 |
# | 需要一個不會包含在驗證演算法中的數字。 |
% | 需要一個會包含在驗證演算法中的數字。 |
? | 需要一個不會包含在驗證演算法中的英數字元。 |
^ | 需要大寫或小寫字元。數字在這裡無效。 |
< | 對話方塊中,在這個字元左邊的任何字元都不可見。 |
> | 對話方塊中,在這個字元右邊的任何字元都不可見。使用 < 字元時,需要一個結束字元。 |
其他任何字元都會當成常值常數處理。
ShowSerialNumber屬性必需改為「True」。
這樣我們就能利用上述字元來組合出我們的規則,只有符合我們規則序號才能安裝,這樣有沒有很專業的感覺。
參考資料:
Windows Installer 部署
謝謝,受益良多。
回覆刪除有小錯字喔! ^__^
別外,我們在方案總管的WebSetup按左鍵按屬性
此 右鍵