天天看點

【吐槽】VS2012的安裝項目隻能用InstallShield Limited Edition

【吐槽】VS2012的安裝項目隻能用InstallShield Limited Edition

以前版本的Visual Stuido中安裝項目都可以使用微軟自家的Visual Studio Installer,但是到了VS2012這一切都變了。為這個鬼東西折騰了幾天,把經驗分享出來,留個腳印,以免同樣上當。 首先,從VS2012開始,以前的Visual Studio Installer不複存在,打開VS2012,建立項目中的“安裝和部署”項目模版,多了一個“啟用InstallShield Limited Edition”,輕按兩下可以得到這個東東的下載下傳頁面,直接用郵箱進行注冊後,會發下載下傳位址和注冊碼到郵箱。為了避免麻煩,本文後面有下載下傳位址,并提供了一組注冊碼。

  以前版本的Visual Stuido中安裝項目都可以使用微軟自家的Visual Studio Installer,但是到了VS2012這一切都變了,隻能用InstallShield Limited Edition。為這個鬼東西折騰了幾天,把經驗分享出來,留個腳印,以免同樣上當。

1.VS2012及更高版本的安裝項目

 首先,從VS2012開始,以前的Visual Studio Installer不複存在,打開VS2012,建立項目中的“安裝和部署”項目模版,多了一個“啟用InstallShield Limited Edition”,輕按兩下可以得到這個東東的下載下傳頁面,直接用郵箱進行注冊後,會發下載下傳位址和注冊碼到郵箱。為了避免麻煩,本文後面有下載下傳位址,并提供了一組注冊碼。

其次,InstallShield Limited Edition這個東東大家如果做過項目打包,應該都知道,是大名鼎鼎的項目打包工具,非常龐大,功能也強大(聽說而已,我也不太會)。VS2012已經不支援Visual Studio Installer了,甚至以前的項目都打不開,隻能通過轉換到新的安裝模版。心裡不禁就想到,為啥自己的東西不用,還搞一個别人的,是個限制版,功能更全面就要更新購買,這是為什麼?

最後,經過好多努力,到處找資料,看有沒有Visual Studio Installer能不能在VS2012中使用,或者InstallShield Limited Edition的使用方法,可惜最後隻在百度找到了幾篇大概的入門圖文教程,用處不大。在微軟MSDN的網站,有如下的回複“ 

Here is everything I know about the InstallShield software included in VS2010. Note that this is NOT Microsoft software, so they don't support it, they don't update it, they don't upgrade it, etc. If you have questions about InstallShield, the best place to start is the InstallShield 2010 Limited Edition Evaluator Guide。。。。”

意思大概就是“InstallShield 軟體從VS2010版本就開始包括在VS中,它不是微軟的軟體,是以VS不提供支援和更新,如果對InstallShield有疑問,可以到官方網站去。。。”

我次奧,這不是明顯的坑爹嗎,不是你的産品,不提供支援,你還替代自己的東東,拿來用。。

 2.VS2012中InstallShield Limited Edition的使用及問題

其實VS2010也可以使用InstallShield Limited Edition,不過VS2010同時還能使用Visual Stuido Installer。以前這個問題估計很多人沒注意。導緻VS2012開始,隻能使用InstallShield Limited Edition的時候,有些人措手不及,包括我自己。

2.1 InstallShield Limited Edition的正常安裝沒問題

InstallShield Limited Edition的正常安裝項目,其實也很簡單,簡單的設定一下就可以了,我在最後提供一篇網上下載下傳的PDF圖文教程,一般安裝那上面的順序,就沒問題。正常安裝項目,是指簡單的複制.NET項目的生成檔案到系統目錄,搞搞快捷方式,設定一些安裝界面和軟體資訊等。特殊一點的安裝當然就是後面所說的有關com元件和ActiveX控件的安裝。

2.2 ActiveX控件的安裝

問題起源于VS2010的一個ActiveX控件安裝項目,到VS2012後,使用InstallShield Limited Edition安裝基本的使用過程,都會出現一個“Q109435: Error -6109 Internal build error.”的錯誤 。經過在InstallShield官網的一番折騰,找到了可能原因之一:由于開發機可能已經注冊或安裝過次控件,導緻在生成時不能注冊和登出成功。後來手動打開regedit進行查找,把該控件的系統資料庫條目都删除,果然生成成功了。狂喜了好一陣,沒想到,這還隻是開始;

生成成功後,我想當然,安裝肯定沒問題,結果,又來了:錯誤:-1605 此操作隻對目前安裝産品有效 。又搞了一陣,無果,最終決定放棄。采用installShield2010的破解版來試試,installShield2010專業版功能當然更強大一點,搞了一晚上,安裝包是沒錯誤,但在安裝的時候還是com元件注冊錯誤,我崩潰了,最終采用了備用方案,徹底放棄“InstallShield Limited Edition” 

2.3 VS2012項目打包不使用InstallShield 的簡單方法

為了解決VS2012開發打包ActiveX控件的問題,隻能采用這個備用方案了,肯定可以解決問題,隻不過不是最好的方法,好在能解決。

方法很簡單“VS2012開發,VS2010的Visual Studio Installer打包,1個項目2個解決方案檔案即可”

ActiveX控件的注冊用Visual Stuido Installer是很容易解決和制作的(已經成功過)。是以VS2012開發後,使用VS2010打包是完全沒問題,也沒沖突的。但是現在.NET 4.5出來了,用.net 4.5制作的,能不能做,還有點不太确定,我想想問題應該不大,因為ActiveX注冊和系統資料庫有關,和.net版本關系貌似不大。

其實使用專業版本的項目打包工具,肯定也能解決,隻不過小東西,花那麼多時間去重新搞,沒必要。 

3.軟體、教程與注冊碼下載下傳

  VS2012中的InstallShield Limited Edition下載下傳及注冊碼,由于快盤無法分享,且時間已久,源檔案已經丢失。

  需要的朋友,還是去官方網站注冊,然後擷取最新版本,然後進行注冊擷取注冊碼。有免費版可以用,雖然麻煩點。

.NET資料挖掘與機器學習,作者部落格:

http://www.cnblogs.com/asxinyu

E-mail:[email protected]

繼續閱讀