1

Visual Studio 2010 で作成された Web セットアップ プロジェクト (MSI) を Windows Vista、Windows 7、または Windows 2008 Server にインストールしようとすると、一般的なエラーが発生してセットアップが失敗します。http://devio.wordpress.com/2011/04/26/pitfalls-installing-web-setup-msi-on-iis-7/によると、これはセットアップ プロジェクトと IIS7 の間の互換性の問題によるものです。

これを解決するには、Windows 構成で IIS6 メタベースの互換性を有効化/インストールする必要があります。この回避策で問題は解決しましたが、2 つの疑問が生じます。

  • これは、IIS 7 の機能に (マイナスの) 影響を与えますか?
  • インストールを実行しているユーザーにこの問題を通知して、ユーザーが適切な処置を取り、メタベース互換コンポーネントをインストールできるようにするにはどうすればよいですか? ユーザーの作業を楽にするために、このインストールから Windows コンポーネントの構成ダイアログをポップアップ表示することはできますか?
4

2 に答える 2

1
  1. ネイティブAPIを介してIIS7と通信する方法が実装されている限り、これがアプリケーション自体に影響を与えることはないと思います。それ以外の場合、IIS7をサポートしていない場合は、とにかくIIS6互換性を有効にする必要があります。
  2. ターゲットマシンで何かを検索するための標準的なアプローチは、レジストリとファイルシステムを検索することです。VSセットアッププロジェクトでそれがどのように可能かはわかりませんが、たとえばWiXにはこのための特別な要素(RegistrySearchDirectorySearchFileSearch)があります。基本的に、WiXのヒントとコツのスレッドへのこの投稿は、WiXでIIS6の互換性をチェックし、有効化/インストールされていない場合はインストールをブロックする方法を示しています。WiXを知らなくても、Windowsインストーラーの概念を知っている場合でも、かなり簡単です。VSセットアッププロジェクトでコードを同様のものに変換するのに役立ちます。
于 2011-08-17T10:19:26.030 に答える
0

サーバーに1つの悪影響を及ぼしているようです。VisualStudioで作成されたmsiを使用して.NET4.0アプリケーションをロールアウトするたびに、インストールの影響を受けていないものも含め、すべてのアプリケーションプールがリサイクルされます。どうやらこれの根本的な原因はIIS6の互換性です。(これは、これに関するサポートの質問に応えて、マイクロソフトの開発者から報告されました。

現時点では解決策はありません。すべてのインストーラーをWixに変換することは不可能です。

于 2012-07-03T12:31:32.383 に答える