InstallShield LEプロジェクトを作成してWindowsサービスをインストールするにはどうすればよいですか?


104

MSDNでリリースされた昨日、Visual Studio 2012をダウンロードしました。2010年のプロジェクトタイプのいくつかがなくなったか、異なっていることに気づきました。今の私の最大の違いは、Windowsインストーラープロジェクトの削除です。現在、InstallShield LE(限定版)の使用を余儀なくされています。ここでの問題は、大量のWindowsサービスを作成していて、InstallShield LEのセットアップ方法が見当たらないことです。私たち(私の会社)は、プロフェッショナル版のライセンスに投資する必要があるようです。

InstallShield LEにサービスをインストールする方法を見つけた人はいますか?Windowsインストーラプロジェクトを使用する場合は、カスタムアクションを設定するだけです。


1
Visual Studio DeploymentプロジェクトでInstallUtilカスタムアクションを使用することは、実際には非常に悪い習慣でした。基本的なオーサリングツールはMSIのネイティブ機能を公開していなかったので、それは基本的に脆弱なソリューションで車輪を再発明しています。
Christopher Painter

回答:


161

Visual Studio 2012およびInstallShield LEの場合、次の手順を実行します。

  • InstallShieldプロジェクトアシスタントを実行し、サービスのプライマリ出力を[アプリケーションファイル]セクションに追加します。
  • プロジェクトアシスタントが終了したら、セットアッププロジェクトのステップ2で[ファイル]アイテムをダブルクリックします。

ファイルセクション

  • サービスのプライマリ出力を右クリックして、プロパティに移動します。
  • [COMと.NETの設定]タブをクリックし、[インストーラークラス]チェックボックスをオンにします。 ここに画像の説明を入力してください
  • OKをクリック

インストールをビルドして実行すると、サービスがWindowsサービススナップインに表示されます。

これは、「プロジェクトインストーラー」をサービスプロジェクトに追加したことを前提としています(サービスデザインシートを右クリックして、「インストーラーの追加」をクリックします)。Visual Studio 2012 / InstallShield LEを搭載したWindows 8でこの動作を確認できます。


OK、これはVS 2010とWin 7 Proでも機能します。VS 2012でまだ試していないのですが、これで十分です。ありがとう。
fizch

3
ユーザーにデータベース接続文字列(サーバー、認証、データベース名)を要求するダイアログを表示し、InstallShield LEを使用してWindowsサービス構成ファイルを更新することは可能ですか?
アデリアベナリウス2013年

2
これはかなり良いガイドです:c-sharpcorner.com/uploadfile/cb88b2/…
Jonty 2013

1
VS 2013のVisual Studioインストーラープロジェクト。ダウンロード:visualstudiogallery.msdn.microsoft.com/… ユーザーの声:visualstudio.uservoice.com/forums/121579-visual-studio/… リファレンス:blogs.msdn.com/b/visualstudio/archive /
2014/04/17

1
このオプションは、インストール後にサービスを開始しません。サービスをインストールして開始するには、ソリューションエクスプローラーで3.ターゲットシステムの構成>サービスを選択します
Rajeev

24

最近、Install Shield LEを使用してVS 2012をインストールしました。最初に、ビルド後にISEXP -5036内部サーバーエラーが発生し続けました(これは、ISLEプロジェクトをセットアップし、Install Shield Project Assistantを実行した後です)。最終的に、それが失敗していたDVD-5メディアタイプでMSIを作成しようとしていることがわかりました。なんらかの理由で、ソリューションを最初から作成し直すと、CD_ROMとSingleImageメディアタイプにのみ機能することが認識されます。

とにかく、5036エラーを修正するには、VS 2012の[ビルド]タブ(トップメニュー)をクリックし、構成マネージャーを選択すると、DVD構成でISセットアップファイルが選択されていることを確認できます。これをCD_ROMに変更し、[閉じる]をクリックします。ビルド/再ビルドすると、IS 5036エラーなしで完了します。

ここに画像の説明を入力してください


2
これは彼の問題とは何の関係もないかもしれませんが、私の問題は解決しました。ありがとうございました!+1
デビッド

最初から同じ問題が発生しました。デフォルトのインストールでは、構成とセットアップの構築に失敗し、DVD-5が含まれていました。あなたのヒントで私はそれをシングルイメージに変更し、問題なくビルドしました!
Nick Bork 14

DVD-5が選ばれました。シンプルだが素晴らしい答え
beaumondo 14

6

一部のインスタンスではインストーラークラスのチェックボックスを使用すると機能する場合がありますが、次のエラーが発生する場合があります。

エラー1001。指定されたサービスは既に存在します

この問題を解決する方法について、このリンクからの抜粋を以下に示します。

エラーの場合:エラー1001。指定されたサービスは既に存在します

このエラーは、.NETサービスをインストールするコンポーネントが「.NETインストーラークラス」を「はい」に設定して誤って構成されている場合に発生します。.NETサービスをインストールする方法は、「。NETインストーラークラス」設定ではなく、Component \ Advanced Settings \ Servicesビューを使用することです。Component \ Advanced Settings \ Servicesビューで定義を行うと、WindowsインストーラのServiceControlテーブルとServiceInstallテーブルにエントリが作成されます。これらのエントリは、Windowsインストーラーの「InstallServices」アクションでサービスをインストールするために使用されます。


これを手伝って説明してくれませんか... Component \ Advanced Settings \ Services "ビューが見つかりませんか??
ヘルメット

インストーラーのプレミアエディションに含まれています(ffs!microsoftセットアッププロジェクトの種類を削除した理由です!)。プレミアエディションをお持ちの場合。community.flexerasoftware.com/...
ポール・ハッチンソン

セットアッププロジェクト名の長さに関連していることがわかりました。つまり、セットアッププロジェクト名を「インストール」や「セットアップ」などの短い名前に変更します。
Jonty 2013

4

プロジェクトが.NETの場合は、InstallShield LEでServiceProcessInstallerクラスを使用できます。

InstallShieldで動作させるには、InstallShieldの「ファイル」ツリーに移動して、ファイルを右クリックする必要があります。次に、[COMと.NETの設定]タブで[インストーラークラス]のチェックボックスをオンにします。

動作するようになりましたが、Windows 2008R2などの一部のOSで問題が発生しました。あなたのマイレージは異なる場合があります。

次に例を示します。http//www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C


1
ごめんなさい。今日まで見なかった。それは私が受け入れたものとほぼ同じ答えのようです。+1します。
fizch

4

私はこれに関してあらゆる種類の問題を抱えていました。

次のように。

  1. InstallShieldのダウンロードには時間がかかります
  2. 登録プロセスは面倒です。
  3. 設定オプションは混乱し、過度に複雑です。
  4. このスレッドで受け入れられている解決策はハックであり、常に機能するとは限りません。ドキュメントの1001を参照してください。本質的に、Windowsサービスをインストールするための適切な構成オプションを取得するには、ペイウォールを通過する必要があります。

他の場所で述べたように私のための解決策-InstallShieldを放棄することでした

ここに画像の説明を入力してください

その点から非常に簡単です。

編集:更新-ここから最新バージョンをインストールhttps://wix.codeplex.com/releases/view/115492 for vs 2013/2015


3

Visual Studioセットアッププロジェクトは、Visual Studio拡張機能としてVS 2013に戻っています。

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

ソリューションとプロジェクトをVS 2013に更新してください。まだVS 2010を使用している場合は、VS 2013に直接アップグレードすることをお勧めします。

Installheild LEでの私の経験は非常に風変わりですが、トリックを理解すると、使いやすくなります。ただし、MicrosoftとFlexeraによる限定版は、フル機能版を販売するための手段だと思います。つまり、最初にMicrosoftにVisual Studioに多額のお金を支払い、次にそのパートナー(犯罪)にInstallheildにもっと多くのお金を支払います。VS 2013でセットアッププロジェクトを取り戻す必要があったため、うまくいかなかった悪い戦略。


2

私はこの主題について書きました:

WindowsインストーラーXMLを使用したInstallShieldの拡張-Windowsサービス

基本的には、WiXを使用してマージモジュールを作成し、サービスをカプセル化してから、それをinstallshieldプロジェクトに追加します。(INSTALLDIRディレクトリに関連付けて、ファイルが期待どおりに移動することを確認してください)。VMでビルドしてテストします。ケーキ。


学ぶべきもう一つの技術?昨日まで、WIXについて聞いたことがありませんでした。私はまだそれについて何も知りません。このプロセス全体は、数クリックだけを使用していたものではますます困難になっているようです。
fizch

それだけには数回のクリックを取るRUNインストーラを。それらを作成することは常にはるかに多くの努力でした。
Christopher Painter

インストーラーのセットアップも数クリックで完了しました。タイトル、製造元などを入力する必要がありますが、xmlドキュメント全体を作成する必要はありませんでした。WIXについて教えてください。あなたは明らかにそれについてたくさん知っていると言えます。それは何ですか?どこで入手できますか?どうやって使うの?その他...
2012

私は16年間インストーラーを作成してきましたが、単一のEXEとショートカットを使用した単純なインストールだけで、「数回クリックするだけ」でオーサリングできます。いずれにせよ、CodePlexでWiXを見つけることができ、その主題について出版された本があります。基盤となるテクノロジはWindowsインストーラであり、そのドキュメントはPlatform SDKおよびMSDNにあります。
Christopher Painter

5
真面目な話「SDKにある主題についての本が出版されている」…?クリス、私たちは2010年のソリューションを2012年に移行しようとしているだけです。MS、持参バックVSセットアップ/インストーラvisualstudio.uservoice.com/forums/121579-visual-studio/...
JimSTAT

2

VS2012とInstallshield LE Spring Editionを使用しています。Wixを使う必要はありませんでした。

「InstallUtilLib.dllで使用する_isconfig.xmlを作成できませんでした」というエラーが発生した場合は、セットアッププロジェクトと同じ名前で、セットアッププロジェクトフォルダー内にフォルダーを作成してください。

http://community.flexerasoftware.com/showthread.php?165929-Could-not-create-_isconfig-xml-for-use-with-InstallUtilLib-dllのクレジット


2

答えで言及されているように、インストーラーを追加する場所を見つけるのにいくつか問題が発生しました。だからここでそれは方法です。

Windowsサービスプロジェクト内のサービスクラスをダブルクリックします。「コンポーネントをクラスに追加するには、コンポーネントをツールボックスからドラッグし、[プロパティ]ウィンドウを使用してプロパティを設定します...」というテキストが表示される空白の画面リンク以外の場所を右クリックします。 「インストーラを追加」を選択します

じゃあ


0

後でそのセットアップのアップグレードを作成する場合は、上記のすべての説明が役に立たないことに注意してください。アップグレード時に、InstallShiled LEは実行中のサービスを停止できません。Window Service Installer-> BeforeInstallイベントからも実行できません。


0

これをここに置きたかった。

VS 2015では、これを実行すると、インストール時に繰り返し1001エラーが発生しました。

このページの回答では、新しいバージョン(2012年以降)では、インストーラークラスオプションを明示的にオフにして、インストーラープロジェクトのステップ3の[サービス]セクションでWindowsサービスを追加する必要があることを説明しました。

カスタムWindowsサービスのインストール時のエラー1001

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.