[INFO] アプリケーションを再パッケージ化する場合の短所

文書翻訳 文書翻訳
文書番号: 264478 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、アプリケーションを再パッケージ化して Windows インストーラ セットアップ エンジンで使用する場合の短所と技術的な問題点について説明します。

詳細

キャプチャ ユーティリティや "検出" ユーティリティは、従来のインストールを新しい Windows インストーラ形式である MSI パッケージに変換するように設計されています。

Windows 2000 Server CD-ROM に収録されている Veritas WinInstall LE などのキャプチャ ユーティリティでは、パッケージのインストールの前後にシステムの状態が取得されます。キャプチャ処理中に行われたレジストリの変更、ファイルの変更、またはシステムの設定がインストールに含まれます。

インストールの背景情報

Windows インストーラは、アプリケーションの開発サイクルにより緊密に統合されるように設計されており、システム管理者はアプリケーションをより柔軟に企業環境に展開できます。これまでアプリケーションの開発者は、これを実現するために、開発サイクルの最終段階ではなく、開発の初期段階で再配布を検討してきました。

セットアップ パッケージの作成が開発の最終段階まで延期されることによって、アプリケーションのインストールはそのアプリケーション自身ではサポートされず、インストールについてはまったく無関係なテクノロジに依存してきました。その結果、システム管理者が独自の再配布方法を用意することになり、総所有コスト (TCO) が大幅に増加していました。これらのソリューションは、"DLL Hell" 問題の大きな原因になることがありました。再パッケージ化は、これらの問題をすべて解決するものではありません。実装がさらに多層化されるため、従来のインストール テクノロジよりも問題が悪化し、より複雑になることがあります。

Windows インストーラは、現在および将来にわたって、Windows 環境にアプリケーションをインストールするために使用される方法です。これはスクリプト中心ではなく、データベースを中心としたインストール テクノロジで、アプリケーションのセットアップによりシステムに加えられた変更をインストール中にロールバックできるなど、さまざまな利点があります。Windows インストーラの機能を十分に活用するには、アプリケーション開発者は開発段階で MSI を組み込む必要があります。詳細については、次のマイクロソフト Web サイトにあるホワイト ペーパー『Windows インストーラ』を参照してください。
http://www.microsoft.com/japan/windows2000/techinfo/howitworks/management/installer.asp

一般的な問題および課題

  • 復元機能

    再パッケージ ユーティリティでは、コンポーネントの依存関係や、アプリケーションのキーパスが完全に認識されないことがあるため、再パッケージ化されたアプリケーションでは復元機能と矛盾が生じることがあります。このため、コンポーネントのキーパスが見つからない場合、アプリケーションは 1 つの大きな機能にパッケージ化され、全体が再インストールされる可能性があります。複数の小さな機能に分割した場合、復元機能がより管理しやすくなります。
  • COM または ActiveX の登録

    COM (コンポーネント オブジェクト モデル) コントロールおよび ActiveX コントロールが、適切に登録されないことがあります。Windows インストーラ以前は、COM や ActiveX の登録はブラック ボックスでした。エクスポートされた関数である DLLRegisterServer と DLLUnregisterServer 以外は、COM コントロールや ActiveX コントロールの登録処理はほとんど非公開でした。RegSvr32.exe で上記の関数が呼び出され、登録自体は DLL で行われていました。DLL、OCX、または EXE を表示し、そのファイルの DllRegisterServer および DllUnregisterServer の内部で何が実行されているかを解析できるユーティリティはありません。大部分の COM コントロールや ActiveX コントロールが登録される標準のレジストリ エントリには、HKEY_CLASSES_ROOT\CLSID、HKEY_CLASSES_ROOT\ProgID、および HKEY_CLASSES_ROOT\TypeLib があります。COM の登録情報が、再パッケージ ユーティリティによって、適切な MSI テーブルに入力される場合と、されない場合があります。
  • ショートカット

    ショートカットが、復元機能を有効にする Windows インストーラ記述子のショートカットとして作成されない場合があります。従来のセットアップのショートカットはほとんどの場合、実行可能ファイルを指す .lnk ファイルでした。再パッケージ ユーティリティの実行時に、.lnk ファイルがディレクトリにコピーされたことのみが認識される場合があります。たとえば、従来の Setup.exe では、ショートカットが C:\Windows\Profiles\User1\Desktop にインストールされました。再パッケージ ユーティリティでは、.lnk ファイルが上記のディレクトリに直接コピーされます。したがって、再パッケージ ユーティリティでは、実際に Windows インストーラのショートカットがコピーされるのではなく、復元の機能が含まれないファイルがコピーされます。
  • 分離コンポーネント

    分離コンポーネントを利用する唯一の方法は、新しい MSI パッケージを作成することです。現在、再パッケージ ユーティリティではこの機能はサポートされていません。
  • アプリケーションの削除

    再パッケージ化されたアプリケーションをアンインストールする場合、AllUsers のプロファイルが削除される可能性があります。これは従来のセットアップがキャプチャされた方法に依存しており、必ずテストする必要があります。
  • グループ ポリシーと提供情報

    GPO への割り当ての際に次のエラー メッセージが表示されることがあります。
    The size of the object exceeds the limit set by the administrator.
    特に、Microsoft Visual Studio 6 と同程度のサイズのアプリケーションを再パッケージ化するときに、このエラー メッセージが表示されることがあります。このエラー メッセージは、状況を改善することができる ADSI 設定があるような印象をユーザーに与えるため、誤解を招く可能性があります。現在のところ、このエラー メッセージの回避策はありません。これは再パッケージ化の問題で、再パッケージ処理で MSI パッケージに大量の情報が格納されるために発生することがあります。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    262166 Active Directory で複数のアプリケーションを配布しようとするとエラーが発生することがある
  • ディレクトリ構造

    Win32 オペレーティング システムのディレクトリ構造の相違に起因するディレクトリ構造の複雑さは、再パッケージ化の際の一般的な問題です。以下の各環境変数について、オペレーティング システム上のディレクトリの場所を考慮する必要があります。
    • システム ディレクトリ
      Windows 95、98、98SE、および Millennium Edition = Windows\System
      Windows NT および Windows 2000 = WinNT\System32
    • プロファイル ディレクトリ
      Windows 9x/ME = Windows\Profiles
      Windows NT = WinNT\Profiles
      Windows 2000 = Documents and Settings
    このため、Microsoft Windows NT をキャプチャして、Win9x OS にその MSI パッケージをインストールすると、Windows\System に配置されるべきファイルが WinNT\System32 に配置される場合があります。これにより、アプリケーション ファイルは適切なディレクトリにインストールされません。このような場合には、ディレクトリ構造およびオペレーティング システムに依存するファイルが正しくキャプチャされるように、Windows プラットフォームごとにキャプチャまたは再パッケージ化することを推奨します。
  • ANSI と UNICODE

    アプリケーションには ANSI 固有または UNICODE 固有のライブラリが必要な場合があります。ANSI ライブラリは、通常、Microsoft Windows 95 および Microsoft Windows 98 で使用されます。UNICODE ライブラリは Windows NT 4.0 および Microsoft Windows 2000 用に開発されたものです。UNICODE または ANSI 専用の MSI パッケージを作成する場合、Windows 95、Windows 98、Windows NT、および Windows 2000 の複数の OS を対象としたパッケージを再配布すると問題が発生します。このことも、OS のバージョンごとに再パッケージ化することをお勧めする理由の 1 つです。
  • カスタマイズ (再パッケージ化とトランスフォーム)

    もともと MSI 形式でビルドされたアプリケーションのパッケージをカスタマイズする場合、再パッケージ化する必要はありません。Windows インストーラはシステム管理者に配慮して設計されており、パッケージのカスタマイズの必要性についても考慮されています。Windows インストーラでは、インストールをカスタマイズするためのトランスフォーム (.MST) という機能がサポートされています。

    詳細については、次の MSDN Web サイトで、Windows インストーラ SDK のトランスフォームのトピックを参照してください。
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/transforms.asp
    関連情報については、次のマイクロソフト Web サイトで、Office 2000 ORK の Custom Installation Wizard を参照してください。
    http://www.microsoft.com/japan/office/ork/2000/journ/CIWJ.asp
  • ユーザー アカウントの構成

    アプリケーションを再パッケージ化するとき、あるユーザー アカウントで行われたすべての変更がインストールの対象になることがあります。たとえば、MyProgram.exe という従来のアプリケーションが、ローカル コンピュータの管理者アカウントで MSI パッケージに変換されたとします。MyProgram.exe にはデスクトップにショートカット (C:\Documents and Settings\Administrator\Desktop\MyProgram.LNK) があり、USERPROFILE (C:\Documents and Settings\Administrator) サブディレクトリにユーザー設定が格納されています。User1 がログオンし、MSI を実行すると、User1 には管理者のフォルダに対する書き込みのアクセス許可がないため、エラー メッセージが表示されます。User1 に管理者特権があるか、システム特権で MSI を実行する場合でも、MSI では、デスクトップのショートカットは管理者のプロファイルに書き込まれます。同じことがユーザー設定およびユーザー固有のデータにも当てはまるので、すべて C:\Documents and Settings\Administrator ディレクトリから実行されます。このため、アプリケーションを再パッケージ化すると、MSI パッケージをインストールするユーザーのプロファイルに、相違点がそのままコピーされる可能性があります。

解決策の提案

再パッケージ ツールを使用する場合、以下のことに注意する必要があります。

  • 必ず、完全にクリーンな状態のコンピュータでツールを使用します。コンピュータに他のアプリケーションがインストールされていないことを確認してください。
  • 必要でないサービスはすべて停止します。
  • ハードウェアの構成ごとにパッケージを作成します。たとえば、50 台の Dell XYZ コンピュータと 50 台の Gateway ABC コンピュータがある場合、それぞれのコンピュータに搭載されているハードウェアおよびドライバが異なるので、システムの種類ごとにパッケージを作成する必要があります。各パッケージを、特定のハードウェアおよびソフトウェアの構成用に限定しておく必要があります。

    この処理の実行方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    257718 [HOW TO] サードパーティ製品用の Microsoft インストーラ パッケージ (MSI) を作成する方法
Windows 2000 ドメインで従来のアプリケーションを公開する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
231747 .zap ファイルを用いて非 MSI プログラムを公開する方法

プロパティ

文書番号: 264478 - 最終更新日: 2006年8月8日 - リビジョン: 4.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows インストーラ 1.0
  • Microsoft Windows インストーラ 1.1
  • Microsoft Windows インストーラ 1.2
キーワード:?
kbinfo KB264478
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com