昨日、MSDNでリリースされたVisual Studio 2012をダウンロードしました。 2010年に持っていたプロジェクトタイプのいくつかがなくなっているか異なっていることに気付きました。私にとって今の最大の違いは、Windows Installerプロジェクトの削除です。現在、InstallShield LE(限定版)の使用を余儀なくされています。ここでの問題は、私が大量のWindowsサービスを書いているため、InstallShield LEのセットアップ方法がわからないことです。私たち(私の会社)は、プロフェッショナル版のライセンスに投資する必要があるようです。
誰かがInstallShield LEにサービスをインストールする方法を見つけましたか? Windows Installerプロジェクトを使用するときは、カスタムアクションを設定するだけです。
Visual Studio 2012およびInstallShield LEの場合、以下を実行します。
これで、インストールをビルドして実行すると、Windowsサービススナップインにサービスが表示されます。
これは、サービスプロジェクトに「プロジェクトインストーラー」を追加したことを前提としています(サービスデザインシートを右クリックし、「インストーラーの追加」をクリックします)。 Visual Studio 2012/InstallShield LEを使用して、Windows 8でこの動作を確認できます。
最近、VS 2012にInstall Shield LEをインストールしました。最初、ビルド後にISEXP -5036内部サーバーエラーが発生し続けました(これはISLEプロジェクトをセットアップし、Install Shield Project Assistantを実行した後です)。最終的に、失敗した場所であるDVD-5メディアタイプでMSIを作成しようとしていることがわかりました。何らかの理由で、ソリューションを最初から作成し直すと、CD_ROMおよびSingleImageメディアタイプにのみ機能するビルドのみが認識されます。
とにかく5036エラーを修正するには、VS 2012の[ビルド]タブ(トップメニュー)をクリックし、構成マネージャーを選択すると、DVD-5構成でISセットアップファイルが選択されていることがわかります。これをCD_ROMに変更して、[閉じる]をクリックします。ビルド/リビルドすると、IS 5036エラーなしで完了します。
インストーラクラスのチェックボックスを使用すると、一部のインスタンスで機能する場合がありますが、次のエラーが発生する場合があります。
エラー1001。指定されたサービスは既に存在します
これからの抜粋があります link この問題の解決方法:
エラーの場合:エラー1001。指定されたサービスは既に存在します
このエラーは、.NETサービスをインストールするコンポーネントが「.NET Installer Class」をYesに設定して誤って構成されている場合に発生します。 .NETサービスをインストールする方法は、「。NET Installer Class」設定ではなく、Component\Advanced Settings\Servicesビューを使用することです。 Component\Advanced Settings\Servicesビューで定義を作成すると、Windows Installer ServiceControlおよびServiceInstall Tablesにエントリが作成されます。これらのエントリは、Windowsインストーラーの「InstallServices」アクションでサービスをインストールするために使用されます。
プロジェクトが.NETの場合、InstallShield LEでServiceProcessInstallerクラスを使用できます。
InstallShieldで動作させるには、InstallShieldの「ファイル」ツリーに移動して、ファイルを右クリックする必要があります。次に、[COMおよび.NET設定]タブの[インストーラークラス]のチェックボックスをオンにします。
動作するようになりましたが、Windows 2008R2などのOSで問題が発生しました。あなたのマイレージは異なる場合があります。
以下に例を示します。 http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C
これにはいろいろな問題がありました。
次のように。
他の場所で述べたように、私にとっての解決策は-InstallShieldを放棄することでした
その時点から非常に簡単です。
編集:更新-ここから最新バージョンをインストールします https://wix.codeplex.com/releases/view/115492 vs 2013/2015
Visual Studioセットアッププロジェクトは、Visual Studioの拡張機能としてVS 2013に戻りました。
https://visualstudiogallery.msdn.Microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d
ソリューションとプロジェクトをVS 2013に更新してください。VS2010をまだ使用している場合は、VS 2013に直接アップグレードすることをお勧めします。
私がInstallsheild LEで経験したことは、それは非常に風変わりですが、一度トリックを理解すると、使いやすくなります。ただし、この限定版は、MicrosoftとFlexeraがフル機能版を販売する方法だと思います。言い換えれば、まずMicrosoftにVisual Studioに多額のお金を支払い、それから、彼らのパートナー(犯罪)にInstallsheildに多額のお金を支払います。 VS 2013でセットアッププロジェクトを取り戻さなければならなかったため、うまくいかなかった悪い戦略。
VS2012とInstallshield LE Spring Editionを使用しています。 Wixを使用する必要はありませんでした。
「InstallUtilLib.dllで使用する_isconfig.xmlを作成できませんでした」というエラーが発生した場合は、セットアッププロジェクトと同じ名前のフォルダーをセットアッププロジェクトフォルダー内に作成してください。
答えにあるように、インストーラーを追加する場所を見つけるのに問題がありました。だからここに方法です。
Windowsサービス内のサービスクラスをダブルクリックします。プロジェクト「テキストをクラスに追加するには、ツールボックスからコンポーネントをドラッグし、プロパティウィンドウを使用してプロパティを設定します...」というテキストが表示されます。 「インストーラーの追加」を選択します
じゃあ
このテーマについて書いた:
Windows Installer XMLを使用したInstallShieldの拡張-Windowsサービス
基本的に、WiXを使用してマージモジュールを作成し、サービスをカプセル化してから、それをインストールシールドプロジェクトに追加します。 (INSTALLDIRディレクトリに関連付けて、ファイルが期待どおりの場所にあることを確認してください)。 VMでビルドおよびテストします。ケーキ。
後でそのセットアップのアップグレードを作成する場合、上記の説明はすべて役に立ちません。 InstallShiled LEは、アップグレード時に実行中のサービスを停止できません。 Window Service Installer-> BeforeInstallイベントからもできません。
これをここに入れたかった。
VS 2015でこれを行うと、インストール時に1001エラーが繰り返し発生しました。
このページの回答は、新しいバージョン(2012年以降のもの)では、明らかにを残す必要があると説明しましたインストーラークラスオプションunchecked、インストーラープロジェクトのステップ3の[サービス]セクションでWindowsサービスを追加します。