2012-08-16 87 views
103

我昨天在MSDN上發佈時下載了Visual Studio 2012。我注意到,2010年的一些項目類型已經消失或不同了。我現在最大的區別是刪除了Windows Installer項目。現在我們正在被迫使用InstallShield LE(限量版)。這裏的問題是我寫了大量的Windows服務,而且我看不到如何設置InstallShield LE。看來我們(我的公司)將不得不投資專業版的許可證。如何創建InstallShield LE項目來安裝Windows服務?

有沒有人找到在InstallShield LE中安裝服務的方法?在使用Windows Installer項目時,您只需設置自定義操作。

+1

使用InstallUtil自定義操作實際上是一個真正的窮人的做法。它基本上是用一種脆弱的解決方案重新發明輪子,因爲底層的創作工具沒有公開MSI的本地功能。 – 2012-08-17 01:24:54

回答

159

對於Visual Studio 2012 &的InstallShield LE,請執行下列操作:

  • 運行通過的InstallShield項目助理和服務的主輸出添加到應用程序文件部分。
  • 完成項目助理後,雙擊安裝項目第二步下的「文件」項。

Files section

  • 鼠標右鍵點擊你的服務的主輸出,並轉到屬性。
  • 單擊「COM和.NET設置」選項卡,並勾選「安裝程序類」複選框。 enter image description here
  • 點擊Ok

現在,一旦你建立並運行安裝,您的服務將出現在Windows服務的管理單元。

注意,這裏假設你增加了一個「項目安裝程序」到您的服務項目(右鍵單擊服務設計表並單擊「添加安裝程序」)。我可以通過Visual Studio 2012/InstallShield LE在Windows 8上確認這項工作。

+0

好的,這也適用於VS 2010和Win 7 Pro。我還沒有嘗試在VS 2012中,但這應該做到這一點。謝謝。 – fizch 2012-11-08 20:55:17

+3

是否可以有一個對話框詢問用戶數據庫連接字符串(服務器,身份驗證和數據庫名稱)並使用InstallShield LE更新Windows服務配置文件? – 2013-05-01 13:44:05

+2

這是一個很好的指導:http://www.c-sharpcorner.com/uploadfile/cb88b2/simple-steps-to-create-setup-file-using-install-shield-le-fr/。 – Jonty 2013-07-31 09:50:01

2

我寫這個主題:

Augmenting InstallShield using Windows Installer XML - Windows Services

基本上你使用WiX的封裝服務,然後將其添加到您的InstallShield項目中創建一個合併模塊。 (請務必關聯到INSTALLDIR目錄以確保您的文件到達您期望的位置)。在虛擬機上構建和測試。小菜一碟。

+0

另一種學習技術?直到昨天,我還沒有聽說過WIX。我對這件事一無所知。聽起來這個過程對於過去只需點擊幾下的東西就變得越來越困難。 – fizch 2012-08-17 18:55:18

+0

只需點擊幾下* RUN *安裝程序。編寫它們一直是更多的努力。 – 2012-08-17 21:49:26

+0

它也只需要點擊幾下設置安裝程序。您必須輸入標題,製造商等,但是您不必編寫整個xml文檔。 關於WIX,你能告訴我什麼?我可以告訴你,你顯然知道很多。它是什麼?我在哪裏得到它?我如何使用它?等... – fizch 2012-08-17 21:52:44

4

如果您的項目是.NET,那麼嘗試使用InstallShield LE可以使用ServiceProcessInstaller類。

要使其與InstallShield一起使用,您必須進入InstallShield「文件」樹並右鍵單擊您的文件。然後選中「COM和.NET設置」選項卡上的「安裝程序類」複選框。

我已經得到它的工作,但我有一些像Windows 2008R2操作系統的問題。你的旅費可能會改變。

下面是一個例子:http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

+1

對不起。直到今天我纔看到這一點。它看起來與我接受的答案几乎相同。我會爲它+1。 – fizch 2012-11-08 20:56:20

6

當使用安裝程序類複選框可用於某些情況下工作,你可能會遇到以下錯誤:

Error 1001.The specified service already exists

下面是從這個link關於如何解決此問題的摘錄:

For Error: Error 1001.The specified service already exists

This error will occur if the component installing a .NET Service is incorrectly configured with ".NET Installer Class" set to Yes. The method to install a .NET Service is to use Component\Advanced Settings\Services view, not the ".NET Installer Class" setting. Making definitions in the Component\Advanced Settings\Services view creates entries in the Windows Installer ServiceControl and ServiceInstall Tables. These entries are used by the Windows Installer "InstallServices" action to install the Service.

+0

你能幫忙解釋一下嗎.... Component \ Advanced Settings \ Services「視圖可以找到嗎? – pithhelmet 2013-04-04 18:44:50

+0

它在安裝程序的首要版本中(ffs!microsoft爲什麼拿出安裝項目類型!).. 如果你有最好的版本。 http://community.flexerasoftware.com/showthread.php?175189-Install-windows-service – 2013-06-19 09:39:01

+0

我發現它與長度有關安裝項目名稱,即改變你的安裝項目名稱,如「安裝」或「設置」更短的東西。 – Jonty 2013-07-31 09:46:45

24

我最近用Install Shield LE安裝了VS 2012。起初,我在構建完成後不斷收到ISEXP -5036內部服務器錯誤(這是在設置ISLE項目並運行Install Shield Project Assistant之後)。最終我發現它試圖在DVD-5媒體類型中創建MSI,這是它失敗的地方。出於某種原因,從頭開始再次創建解決方案承認只能生成適用於CD_ROM和SingleImage的媒體類型。

無論如何糾正5036錯誤,單擊VS 2012中的生成選項卡(頂部菜單),選擇配置管理器,你應該看到你的IS設置文件在DVD-5配置上被選中。將其更改爲CD_ROM並單擊關閉。一旦你建立/重建它將完成沒有IS 5036錯誤。

enter image description here

+2

這可能與他的問題沒有任何關係,但它解決了我的問題。謝謝!+1 – David 2013-04-15 14:38:46

+0

同樣的問題,我立即開始,默認安裝DVD-5作爲配置,安裝程序無法構建。隨着您的提示,我將其更改爲單張圖像,並與您一起構建問題! – 2014-07-30 04:28:54

+0

選擇DVD-5。簡單但很好的答案 – beaumondo 2014-12-18 18:41:42

2

我只是得到了一些問題,找到在哪裏添加安裝在答覆中提到。所以這裏是如何。

您的服務類雙擊您的Windows服務項目 空白屏幕文本「將組件添加到您的類,從工具箱中拖動,使用屬性窗口設置其屬性...」 右內點擊任何地方,但上的鏈接,選擇「添加安裝程序」

再見

4

我有各種各樣的這個問題。

如下。

  1. 的InstallShield需要年齡下載
  2. 註冊過程是一種痛苦。
  3. 配置選項很混亂且過於複雜。
  4. 在這個線程上被接受的解決方案是一種黑客攻擊,它並不總是能夠工作 - 請參閱文檔中的1001 - 本質上,您需要通過付費牆獲得正確的配置選項才能安裝Windows服務。如其他地方提到

解決方案,我 - 是放棄的InstallShield

enter image description here

從這一點非常容易。

編輯:更新 - 安裝從這裏https://wix.codeplex.com/releases/view/115492最新版本VS2015分之2013

3

Visual Studio安裝項目早在2013 VS作爲一個Visual Studio擴展。

https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

請更新您的解決方案和項目,2013年VS如果你仍然在VS 2010中,你可能直接升級到VS 2013

我與Installsheild LE的經驗是,最好這是非常古怪的,但一旦你弄清楚這些技巧,它更容易使用。不過,我認爲限量版是微軟和Flexera出售全功能版本的一種方式。換句話說,首先我們向微軟公司付了很多錢給Visual Studio,然後他們的合作伙伴(犯罪)更多地爲Installsheild付款。帶給因爲他們沒有工作了糟糕的戰略背面的設置項目,2013年VS

-1

請參閱此鏈接,這將有助於你

Installshield

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效 – 2015-06-30 06:59:35

0

記住,所有上述說明如果您打算稍後創建該設置的升級,則不會對您有所幫助。升級時,InstallShiled LE無法停止正在運行的服務。您無法從Window Service Installer - > BeforeInstall事件中執行此操作。

0

想要在這裏;

在VS 2015上,當這樣做時,我反覆安裝時遇到了1001錯誤。

這個網頁上回答解釋說,在新版本(任何過去的2012),顯然你需要明確地離開安裝程序類選項選中,然後根據下步服務部分添加您的windows服務安裝項目3:在Visual Studio部署項目

Error 1001 when installing custom Windows Service

相關問題