2011-01-25 11 views
0

私はVS2008からVS2010に移行しました。以前はWindowsサービスをインストールしていましたが、これは手間がかかりました。第1に、私のアップグレードされたセットアッププロジェクトは、2008年に構築されたMSIと互換性のないMSIになります。実際には2つの理由があります。コンポーネントGUIDはどこかで変更されていて、MSIをアップデートとして実行するとほとんどのDLLが削除されます(新鮮なインストールではなく、これはうまくいきます...時々、ただ読んで)。 しかし、ねえ、ポストビルドスクリプトを使用してMSIを変更してください。InstallExecuteSequence tableで汗をかくようなものがあります。 2つ目は、インストール中のWindowsサービスが更新中に停止または削除されないが、インストーラがレジストリにサービスを登録しようとしているため、「サービスはすでに存在しています」というエラーが表示されます。 しかし、ちょっと、問題はありません。サービスを停止し、レジストリエントリを削除するように私のカスタムアクションを変更しました(最後の部分はコンソールを表示せずにいくつかのパラメータでsc.exeを呼び出す新しいプロセスを開始することによって非常に醜いです...) 。 これで、Windowsサービスのアップグレード中にエラーが発生することはありません。はい、チケットを閉じて、移動してください。それほど高速ではない:ファイルがコピーされる前にサービスが停止していないため、サービスがすでに実行中のときにシステムを再起動してインストールを完了する必要があります。だから今私たちの顧客はすべての実行中のプロセスのダウンタイムをもたらすサーバー全体を再起動する必要がありますか?もちろん容認できない。VS2010移行問題のセットアッププロジェクト

いい仕事MS、これはVS2008の問題ではありませんでした! Windowsサービスのインストーラのテストを試してみましたか?あなたがこれを読んでいることを願って...

すべてのファイルがコピーされる前に私のサービスを停止するにはどうすればいいですか? MSIのInstallExecuteSequenceテーブルの一部の項目を移動しますか?誰でも知っている人は誰ですか?または、私の問題を解決するセットアッププロジェクトのMS修正プログラムを知っている人はいますか?

答えて

0

VSセットアッププロジェクトをスクラップし、WiXに移動します。私はVSのセットアッププロジェクトで何年も苦しんだ後にそれを行いました.WiXプロジェクトを磨き上げて生産準備をするのに1日もかかりませんでした。

既存の.msiをWiXプロジェクトにリバースエンジニアリングしてから手動で編集し、WiX UIダイアログに変更して、VSインストーラプロジェクトのMSIから長いGUID風のものの代わりに人間が読める名前を適用することができます。

ダウンロード3.5(現在の安定版2011年1月現在)からhttp://wix.codeplex.com/をダウンロードしてください。あなたは一度も振り返らないでしょう。

関連する問題