セットアップ プロジェクトと配置プロジェクトのトラブルシューティング

このセクションのトピックでは、配置プロジェクトの作成時およびアプリケーションの配置時に発生する可能性があるさまざまな問題を取り上げます。

セットアップ プロジェクトに必要な .NET Framework のバージョンが、アプリケーションが対象とする .NET Framework のバージョンと異なる

セットアップ プロジェクトには、.NET Framework の特定のバージョンをチェックできる起動条件があります。 ただし、そのバージョンは、アプリケーションが使用する対象の .NET Framework とは異なる場合があります。 たとえば、アプリケーションは .NET Framework 2.0 を対象としていますが、セットアップ プロジェクトの起動条件では .NET Framework 3.5 が検索され、インストールされる場合があります。 別の例として、Visual Studio プロジェクト テンプレートは .NET Framework 4 Client Profile を対象としていますが、セットアップ プロジェクトの起動条件では .NET Framework 4 が検索され、インストールされる場合もあります。

この既定の動作を変更するには、次の手順に従います。

  1. ソリューション エクスプローラーで、セットアップ プロジェクトをクリックします。

  2. [表示] メニューの [エディター] をポイントし、[起動条件] をクリックします。

  3. [.NET Framework] をクリックします。

  4. プロパティ ウィンドウで、Version プロパティを変更して、セットアップ プロジェクトでチェックおよびインストールする .NET Framework のバージョンに設定します。

Setup.exe プログラムが正しいバージョンの .NET Framework をチェックおよびインストールすることも確認してください。 詳細については、「[必須コンポーネント] ダイアログ ボックス」および「方法 : Windows インストーラー配置で必須コンポーネントをインストールする」を参照してください。

Windows Server 2008 R2 または Windows 7 に .NET Framework 3.5 SP1 をインストールできない

.NET Framework 3.5 SP1 を必須コンポーネントとして含めるようにセットアップ プロジェクトを構成することができます。 ただし、この必須コンポーネントを Windows Server 2008 R2 または Windows 7 のコンピューターにインストールしようとすると、"Microsoft .NET Framework 3.5 SP1 をインストールまたは構成するには、ロール管理ツールを使用する必要があります" というエラー メッセージが表示されます。Windows Server 2008 R2 では、オペレーティング システムのオプションのコンポーネントとして .NET Framework 3.5 SP1 が含まれていますが、既定ではこの必須コンポーネントは無効になっています。 詳細については、「Which Version of .NET is Built into Windows? (Windows に組み込まれている .NET のバージョン)」を参照してください。

このエラーを回避するには、.NET Framework 3.5 SP1 ブートストラップ パッケージを変更します。

  1. コマンド ライン "ocsetup Netfx3" を実行する実行可能プログラムを作成します。

  2. %ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1 フォルダーに移動します。

  3. 実行可能プログラムを DotNetFX35SP1 フォルダーにコピーします。

  4. en フォルダーに移動し、管理者特権で package.xml を開きます。

  5. 実行可能プログラムを実行する <Command> 要素を <Commands> セクション内に追加します。

Windows 7 で Microsoft Visual Studio レジストリ キャプチャ ユーティリティを使用しているときにエラーが発生する

Windows 7 を実行しているコンピューターで Microsoft Visual Studio レジストリ キャプチャ ユーティリティ (regcap.exe) を使用しているときに、"Microsoft Visual Studio レジストリ キャプチャ ユーティリティは動作を停止しました" というエラーが表示されることがあります。インストーラー プロジェクトはビルドされる場合もありますが、その後に dll がインストールされません。

このエラーを回避するには、次の手順を実行します。

  1. %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\Tools\Deployment に移動します。

  2. regcap.exe を右クリックし、[プロパティ] をクリックします。

  3. [互換性] をクリックします。

  4. [互換モード] の下にあるチェック ボックスをオンにします。

Visual C++ セットアップ プロジェクトで依存関係が検出されない

Visual C++ ソリューションにセットアップ プロジェクトを追加する場合、フォルダーのパス名に空白が含まれていると、Visual C++ ソリューションの依存関係が検出されないことがあります。 この問題に対処するには、プロジェクト名を変更して空白を削除するか、手動で依存関係を追加します。 たとえば、Documents\Visual Studio 2010\Projects という名前の場合、Documents\VisualStudio2010\Projects に変更します。

Visual Studio でソース管理下にあるセットアップ プロジェクトをビルドできない

Visual Studio 2008 でセットアップ プロジェクトをビルドすると、"使用しようとしているコマンドは完了できません。ファイル 'ファイル名.vdproj' がソース コード管理にあり、チェックアウトされていません。" のようなエラーが表示されることがあります。セットアップ プロジェクトでは、ソース管理下にあるファイルの自動チェックアウトは行われません。

オペレーティング システムのサポート

Windows Server 2008 Server Core では、Visual Studio ブートストラップと Visual Studio インストーラー (セットアップ プロジェクト) がサポートされていません。また、機能が限定された、管理の容易なサーバー環境を提供する Windows Server 2008 R2 Server Core でもサポートされていません。 たとえば、Server Core のインストール オプションでは、.NET Framework 3.5 Server Core プロファイルのみがサポートされています。そのため、完全な .NET Framework を必要とする Visual Studio の機能は実行できません。 詳細については、「Server Core」を参照してください。

マネージ カスタム動作をインストールできない

マネージ カスタム動作をインストールすると、.installstate ファイルが見つからないというエラー メッセージが表示されることがあります。 このエラーは、マネージ カスタム動作が Install 動作を実装していない場合に発生します。 .installstate ファイルは Install 動作によって作成され、他の動作によって更新されます。

このエラーを回避するには、Install、Uninstall、Commit、および Rollback の各動作をカスタム動作に実装します。

Visual Studio 2008 で使用しているロケールとは異なるロケールの .NET Framework 3.5 SP1 Language Pack をインストールできない

セットアップ プロジェクトで .NET Framework 3.5 SP1 を必須コンポーネントとして選択したとき、Visual Studio では、異なるロケールの Language Pack をインストールするブートストラップ プログラムやセットアップ プログラムは生成されません。 たとえば、日本語バージョン以外の Visual Studio を使用している場合、セットアップ プロジェクトには .NET Framework 3.5 SP1 日本語 Language Pack は含まれません。

このエラーを回避して .NET Framework 3.5 SP1 の日本語版再頒布可能ファイルを作成するには、%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1 ディレクトリに ja ディレクトリを作成します。 ja ディレクトリには、eula.rtf ファイルと package.xml ファイルを含める必要があります。

.NET Framework 3.5 SP1 が既にインストールされている場合に Language Pack をインストールできない

コンピューターに既にコア .NET Framework 3.5 SP1 がインストールされている場合、.NET Framework 3.5 SP1 Language Pack はインストールできません。 たとえば、コンピューターに既に .NET Framework 3.5 SP1 がインストールされている場合、別のアプリケーションのインストーラーで必須コンポーネントとして .NET Framework 3.5 SP1 日本語 Language Pack をインストールすることはできません。

この問題を回避するには、その Language Pack 専用のブートストラップ パッケージを作成します。 ブートストラップ パッケージでは、.NET Framework 3.5 SP1 への依存関係を追加して、コア .NET Framework が既にインストールされている場合にのみ Language Pack がインストールされるようにします。 または、Language Pack を手動でインストールすることもできます。

64 ビットのマネージ カスタム動作から System.BadImageFormatException 例外がスローされる

セットアップ プロジェクトに 64 ビットのマネージ カスタム動作を追加すると、Visual Studio のビルド処理により、32 ビット バージョンの InstallUtilLib.dll が InstallUtil として MSI に埋め込まれます。 その結果、64 ビットのマネージ カスタム動作を実行するときに 32 ビットの .NET Framework が読み込まれ、BadImageFormatException 例外が発生します。

この問題を回避するには、32 ビットの InstallUtilLib.dll を 64 ビット バージョンで置き換えます。

  1. Windows インストーラー SDK の Orca で結果の .msi を開きます。

  2. Binary テーブルを選択します。

  3. レコード InstallUtil の [Binary Data] というセルをダブルクリックします。

  4. [Read binary from filename] が選択されていることを確認し、[Browse] ボタンをクリックします。

  5. %WINDIR%\Microsoft.NET\Framework64\v2.0.50727 を参照します。

    注意

    Framework64 ディレクトリは 64 ビット プラットフォームにのみインストールされ、64 ビット プロセッサの種類に対応します。

  6. InstallUtilLib.dll を選択します。

  7. [開く] ボタンをクリックします。

  8. [OK] ボタンをクリックします。

詳細については、「64-bit Managed Custom Actions with Visual Studio (Visual Studio での 64 ビットのマネージ カスタム動作)」を参照してください。

カスタム ダイアログ ボックスとテキスト ボックスのパスを作成する

テキスト ボックスがあるカスタム ダイアログ ボックスを作成する場合は、そのカスタム ダイアログ ボックスの後に [インストール フォルダー] ダイアログ ボックスを配置する必要があります。 これにより、ディレクトリ値が自動的に反映されます。 カスタム ダイアログ ボックスと [インストール フォルダー] ダイアログ ボックスの順序を逆にする場合は、ディレクトリ値を手動で反映する必要があります。

出力ウィンドウに追加のビルド エラーが表示される

特定のビルド エラーの発生時には、"ブートストラップをビルド中に一般エラーが発生しました" や "回復できないビルド エラーです" などの一般エラー メッセージも表示されることがあります。このような一般エラー メッセージは無視し、特定のエラーに対処してください。

ソリューションを開き直すと、以前に除外したファイルが再び含まれる

セットアップ プロジェクトからファイルを除外し、ソリューションを閉じてから開き直すと、そのファイルがまた含まれる場合があります。 この問題は、同じ DLL ファイルが 2 つのソースの場所から取得され、2 つのコピーが存在する場合に発生します。

このエラーを回避するには、一方のファイルの [ローカルにコピー] プロパティを変更します。

  1. ソリューション エクスプローラーで、削除する DLL 参照をクリックします。

  2. [表示] メニューの [プロパティ ウィンドウ] をクリックします。

  3. [ローカル コピー] プロパティを False に設定します。

セットアップ プロジェクトのビルドが "この操作を完了するのに十分な記憶域がありません" というエラーで失敗する

サイズが大きいファイルをセットアップ プロジェクトに追加すると、セットアップ プロジェクトをビルドしようとしたときに、"この操作を完了するのに十分な記憶域がありません" というエラーが表示されます。このエラーは、ローカル ハード ディスクに空き容量がある場合にも発生します。 さらに、ビルド処理中に仮想メモリの使用量が増えることもあります。

このエラーを回避するには、ビルド コンピューターの RAM を増やすか、次の代替手段を試してください。

  1. プロジェクトに、サイズが大きいファイルと同じ名前のファイルを追加します。

  2. プロジェクトのプロパティ ページで、インストーラーのパッケージを [圧縮しない] に設定します。

  3. ビルドします。

  4. サイズが大きい元のファイルをビルド場所にコピーします。

変更されたファイルがセットアップ プロジェクトで更新されない

旧バージョンのファイルを削除するようにセットアップ プロジェクトを構成しても、ユーザーが変更したファイルや置き換えたファイルは Windows インストーラーで削除されません。 詳細については、「Neither File Has a Version with File Hash Check (ファイル ハッシュ チェックでどのファイルにもバージョン番号がない場合)」を参照してください。

.NET Framework 3.5 SP1 をチェックする起動条件を使用できない

.NET Framework 3.5 SP1 の必須コンポーネントの検出は、MSI のみのシナリオではサポートされません。 代わりに、.NET Framework 3.5 SP1 のチェックとインストールを行うように Setup.exe ブートストラップを構成する必要があります。 詳細については、「[必須コンポーネント] ダイアログ ボックス」を参照してください。

.NET Framework を含む 64 ビット ブートストラップを作成する方法

必須コンポーネントに .NET Framework 3.0 を含め、その Setup.exe ブートストラップを 64 ビット コンピューターにインストールすると、64 ビット オペレーティング システムはサポートされないというエラー メッセージが表示されます。

.NET Framework 3.5 は、32 ビットと 64 ビットのオペレーティング システムのどちらもサポートしています。 アプリケーションが 34 ビットと 64 ビットの両方のオペレーティング システムを対象としている場合は、[必須コンポーネント] ダイアログ ボックスで .NET Framework 3.5 を選択します。 詳細については、「[必須コンポーネント] ダイアログ ボックス」を参照してください。

SQL 2008 と .NET Framework 3.5 SP1 のブートストラップ パッケージをインストールする方法

SQL 2008 と .NET Framework 3.5 SP1 のブートストラップ パッケージは、Visual Studio Express Edition をインストールすることで開発コンピューターにインストールできます。 Visual Studio 2010 では、SQL 2008 と .NET Framework 3.5 SP1 のブートストラップ パッケージが付属しているため、この代替手段は必要ありません。

テキスト ボックスにバックスラッシュを入力すると、無効なディレクトリまたは URL の例外が発生する

カスタム動作がユーザーの入力するインストール フォルダーのパスに依存していると、ArgumentException エラー メッセージが表示されることがあります。 これは、無効なディレクトリまたは URL に関連している可能性があります。

このエラー メッセージを回避するには、Edit1 プロパティと Edit1Value テキスト ボックスのバックスラッシュをスペースに置き換えます (/name="[TARGETDIR] ")。 次に、値を解析し、Combine メソッドを使用して完全修飾パスを作成します。

セットアップ プロジェクトのエラー メッセージに改行 (\n) を追加できない

セットアップ プロジェクトでエラー メッセージを記述する場合、セットアップ プロジェクトや Orca.exe では改行文字を追加できません。 改行を追加するには、Windows インストーラー API を使用し、ビルド後の動作で "INSERT INTO `Property` (`Property`, `Value`) VALUES 'ERRORMESSAGELINES', 'first\r\nnext\r\nlast')" というコマンドを使用します。 ビルド後の動作を使用する方法の詳細については、http://go.microsoft.com/fwlink/?LinkId=150770 を参照してください。

[必須コンポーネント] ダイアログ ボックスで .NET Framework 2.0 SP1 または .NET Framework 3.0 SP1 を選択できない

[必須コンポーネント] ダイアログ ボックスで、インストールされていない場合にインストールするアプリケーションの一覧には、.NET Framework 2.0 SP1 と .NET Framework 3.0 SP1 が表示されません。 これらのバージョンは、スタンドアロンの再頒布可能ファイルとして利用できません。 これらを必須コンポーネントとしてエンド ユーザーのコンピューターにインストールするには、[必須コンポーネント] ダイアログ ボックスで .NET Framework 3.5 を選択します。 詳細については、「[必須コンポーネント] ダイアログ ボックス」を参照してください。

コマンド ライン パラメーターがテキスト ボックスの既定値によって上書きされる

\qb フラグを使用してインストーラーを実行し、コマンド ライン パラメーターを渡してユーザー ダイアログ ボックスのプロパティを設定しても、それらのパラメーターが上書きされることがあります。 プロパティの既定値がユーザーによって上書きされないようにするには、Orca.exe を使用して msi ファイルを変更します。

  1. ダイアログ ボックスの編集フィールド値を、そのプロパティ名に設定します。 たとえば、Edit1Value プロパティを「[EDITB1]」に設定します。

  2. Visual Studio で MSI をビルドします。

  3. ORCA を使用して MSI を編集し、Property テーブルにプロパティの既定値を指定します。

  4. MSI を保存します。

また、ビルド後の動作を使用してこの変更を実行することもできます。 ビルド後の動作を使用する方法の詳細については、http://go.microsoft.com/fwlink/?LinkId=150770 を参照してください。

アセンブリの依存関係が検出されない

配置プロジェクトにプロジェクト出力グループ、アセンブリ、またはマージ モジュールを追加すると、依存アセンブリがすべて自動的に検出され、プロジェクトに追加されます。 配置ツールでは、プロジェクト出力グループの方が簡単に依存関係を検出できるため、アセンブリを含むプロジェクト出力グループを追加することをお勧めします。

実行時にコードによって読み込まれる依存アセンブリは、配置ツールでは検出できません。 コードからアセンブリを読み込まないようにするか、または、配置プロジェクトに手動で依存アセンブリを追加できます。 次の表に、依存関係を検出できない問題と、それらの解決策の一覧を示します。

依存関係の問題

解決方法

別の製品の一部としてのみインストールされるコンポーネントをプロジェクトが参照する。

  • コンポーネントを配置プロジェクトから除外します。

  • ターゲット コンピューターでコンポーネントを確認するための起動条件を追加します。 コンポーネントが見つからない場合は、インストールを中止します。

依存関係の一部を公開していないアンマネージ コンポーネントをプロジェクトが参照する。

アンマネージ コンポーネントに依存しているアセンブリをプロジェクトが参照する。

ロケールが英語以外のコンピューターに MFC アプリケーションをインストールすると、MFC アプリケーションがローカライズされない

Visual Studio 配置プロジェクトを使用して MFC アプリケーションを配置すると、ローカライズされたマージ モジュール Mfc_loc_e.msm および Mfc_loc_fe.msm の依存関係が検出されません。 マージ モジュールは Visual C++ に含まれています。既定のインストール先は、\Program Files\Common\Merge Modules です。 ローカライズされた MFC アプリケーションを配布するには、配置プロジェクトに 2 つのマージ モジュールを手動で追加する必要があります。

Web サーバーにインストールされたファイルが見つからない

Web サーバーに Web セットアップをインストールするときに、Web アプリケーション フォルダーと Web カスタム フォルダーに含まれるファイルを、Web ルートを基準にどこにインストールするかは、これらのフォルダーの VirtualDirectory プロパティで決まります。 このプロパティを空白のままにすると、ファイルは Web ルート フォルダー (inetpub\wwwroot) にインストールされます。 詳細については、「VirtualDirectory プロパティ」を参照してください。

Web サーバーのルート ディレクトリに Web アプリケーションをインストールする方法

既定では、Web セットアップ配置プロジェクトを使用して Web アプリケーションをインストールすると、Web ルート フォルダーの直下に配置プロジェクトと同名のフォルダーが作成され、そのフォルダーにファイルがインストールされます。 ファイルのインストール先は、Web アプリケーション フォルダーの VirtualDirectory プロパティで指定します。 Web ルート ディレクトリにインストールする場合は、VirtualDirectory プロパティを null に変更します (既定値を削除します)。 詳細については、「VirtualDirectory プロパティ」を参照してください。

依存関係の分析をオフにする方法

残念ながら、依存関係の分析の検索および解決をオフにする直接的な方法はありません。 ただし、代替手段があります。SearchPath プロパティをクリックすると表示されるダイアログ ボックスの [標準の検索パスを含む] オプションをオフにするという方法です。

その他に、以下の点を考慮する必要があります。

  • ファイルを追加するには、[ファイルの追加] コマンド ([プロジェクト] メニューの [追加] をポイントし、[ファイル] をクリック) を使用する必要があります。 [プロジェクト出力] の追加 ([プロジェクト] メニューの [追加] をポイントし、[プロジェクト出力] をクリック) を使用すると、コード プロジェクトから報告された依存関係が含められます。

  • ビルド時に "依存関係が見つかりません。" という警告が 1 回以上表示されることがありますが、この場合は無視してかまいません。

  • 一部のファイルのみについて依存関係の分析をオフにする場合は、標準の検索パスをオフにして該当ファイルをマージ モジュール プロジェクトに含めることができます。 次に、[マージ モジュールの参照] ([プロジェクト] メニューの [追加] をポイントし、[マージ モジュールの参照] をクリック) を使用し、標準の検索パスをオンにして通常のセットアップ プロジェクトに .msm を含めます。

変更または削除することがユーザーにより求められているファイルの修復をオフにする方法

Visual Studio では、プログラムの開始時に必要なすべてのファイルが存在することを確認できるように、アドバタイズ ショートカットを作成します。 この動作を変更してファイルが修復されないようにするには、セットアップ プロジェクト内のファイルを選択し、Condition プロパティを NOT REINSTALL に変更します。これによって修復のためにファイルが再インストールされなくなります。さらにその Transitive プロパティを TRUE に変更し、条件が再評価されるようにします。 こうすると、ファイルの削除後、最初はインストーラーが画面に一瞬表示されますが、ファイルを再インストールするべきでないことが確認されるので、その後インストーラーが表示されることはありません。

カスタム動作/インストーラー クラスをデバッグする方法

次の方法があります。

  • コードに System.Diagnostics.Debugger.Launch への呼び出しを追加します。 この方法では、Just-In-Time デバッグ機能が開き、コードに新しいデバッガーを接続できます。

  • コードに MessageBox.Show("Debug Me") への呼び出しを追加します。 メッセージ ボックスが表示されたら、Visual Studio を使用して MessageBox プロセスにアタッチします。 次に、コードに break (Visual C# プロジェクトの場合) または stop (Visual Basic プロジェクトの場合) を追加します。

  • デバッグの設定で %windir%\Microsoft. net\Framework\バージョン\InstallUtil.exe を、プロジェクト デザイナーの [デバッグ] ページで外部プログラムとして起動するように設定します。 カスタム動作アセンブリの名前はコマンド ライン引数です。 F5 キーを押すと、ブレークポイントに達します。 InstallUtil.exe は、MSI と同様にカスタム動作を実行します。

COM インターフェイスへのアセンブリの登録が機能しない

これは RegAsm の既知のバグです。 たとえば別のクラス ライブラリにアセンブリが依存している場合、登録情報を取得するために RegAsm が呼び出されるので、RegisterCOM が動作しないことがあります。 RegAsm が \obj ディレクトリ内で呼び出されるので依存関係が見つからず、RegAsm が通知なしで失敗するからです。 最も良い問題回避の方法は、\bin ディレクトリからアセンブリを手動で追加することです。 もう 1 つの問題回避の方法は RegisterSelfReg を使用することです。

また、必ず RegAsm/Codebase を使用して手動で登録するようにしてください。 アセンブリが共有された場所にない場合、呼び出し元のコードと同じディレクトリにない限り、アセンブリは見つかりません。 /Codebase では、ディレクトリがレジストリに入力されます。

ログ ファイルを使用して Windows インストーラーのインストールをトラブルシューティングする方法

Windows インストーラーは、プログラムのインストール中にその処理をログ ファイルに記録します。 ログ ファイルは、.msi ファイルが存在するディレクトリにあります。

インストールのログ ファイルを取得する方法

次の 2 つの方法があります。

  • コマンド ラインからログ スイッチを指定して実行します。

    misexec /i mysetup.msi /l*v mylog.txt
    
  • 次を .reg ファイルとして保存し、レジストリにロードします。

    REGEDIT4
    
    [HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]
    "Logging"="voicewarmup"
    "Debug"=dword:00000007
    

    次に \temp ディレクトリを開き、日付順に並べ替えます。 最新の msi*.log ファイルは、前回のインストールまたはアンインストールのものです。

以前にインストールされた製品のサブディレクトリにインストールする方法

  1. 以前にインストールされた製品 (製品 1) が MyFile.txt という名前のファイルを持つ場合を考えます。

  2. Orca.exe (Windows インストーラー SDK に付属) を使用して File テーブルを表示し、MyFile.txt に対応する行を検索します。

  3. Component_ 列の値を取得し、Component テーブルを開きます。

  4. Component テーブルで、Component 列に Component_ 値がある行を検索し、その ComponentID を得ます。 この値をクリップボードにコピーします。 Orca.exe を閉じます。

  5. セットアップ プロジェクトで、起動条件エディターを開き、Windows インストーラーのコンポーネント検索を追加します。 新しい検索の ComponentID プロパティとして ComponentID を貼り付けます。

  6. Property プロパティをコピーします。 これにより、COMPONENTEXISTS1 のようになります。

  7. ファイル システム エディターを開き、[アプリケーション フォルダー] を選択します。

  8. DefaultLocation プロパティを編集します ([COMPONENTEXISTS1]MySubFolder などにします)。これは、COMPONENTEXISTS1 内のパスの末尾に '\' が含まれるためです。

上記の手順 6. の後、コンポーネントが見つかったかどうかを確認し、見つからなかった場合はインストールを回避してメッセージを表示するための条件を 起動条件エディターに追加することもできます。 この場合の条件は、COMPONENTEXISTS1 になります (COMPONENTEXISTS1 が空でない場合はインストーラーを実行しても問題がないことを意味します)。

既定以外のポートにカスタム Web フォルダーをインストールする方法

既定以外のポートにカスタム Web フォルダーをインストールするには、コマンド ラインからインストールを実行します。 このコマンドには、各 Web カスタム フォルダーの Property プロパティ値を含める必要があります。 一般的に、NEWWEBPROPERTY1 などの値を使用します。 また、Web アプリケーション フォルダーの TARGETPORT を含める必要があります。

たとえば、Web サーバーにポート 20 が使用されている場合、コマンド ラインは次のようになります。

msiexec /i mywebsetup.msi TARGETPORT=20 NEWWEBPROPERTY1PORT=20

このコマンドは、Web フォルダーが 1 つだけの場合です。 複数の Web フォルダーがある場合は、フォルダーごとに指定した PROPERTY=VALUE ペアを追加して、各フォルダーのポートを指定のポートにリダイレクトする必要があります。

インストール中にユーザー インターフェイス内でポートが変更された場合にカスタム Web フォルダーでこのコマンド ライン値が使用されるため、[インストール アドレス] ダイアログ ボックスを表示しない方が良い場合があります。

Web サイトのルートにインストールする方法

c:\inetpub\wwwroot などの Web サイトのルートにインストールするには、Web セットアップ プロジェクト内で、またはインストール中に、VirtualDirectory に空の文字列を設定します。

ServicedComponent を GAC にインストールし、それを COM+ カタログ内で構成する方法

ServicedComponent を GAC にインストールし、それを COM+ カタログ内で構成しようとすると、次のコンパイル エラーが表示されることがあります。

"Unable to build custom action named 'Primary output from RegServer (Active)' because the file's Folder property is set to Global Assembly Cache."

"GAC のアセンブリはカスタム操作実行時には必ずしも使用 (GAC に反映) できないため、このインストールはサポートされません。"

この問題を回避するには、コードを別のファイルに格納し、GAC に送られないファイルにカスタム動作コードを含めます。 この方法ではコードを配布できない場合もあります。

ショートカット上でアンインストール リンクを作成する方法

  1. セットアップ プロジェクトのディレクトリで、新しい Uninstall.bat ファイルを作成します。

  2. セットアップ プロジェクト内で、ProductCode プロパティ ([[12345678-1234-1234-1234-123412341234]] などの値) をコピーします。

  3. Uninstall.bat を編集して次を含む 1 行を挿入します。ProductCode は手順 2. でコピーした値です。

    Msiexec /x ProductCode

  4. セットアップ プロジェクトのアプリケーション フォルダーに Uninstall.bat を追加します。

  5. Uninstall.bat を右クリックし、[ショートカットの作成] を選択してショートカットを作成します。

  6. セットアップ プロジェクトで、適切な [スタート] メニュー フォルダーにショートカットを含めます。

  7. ショートカットの名前を "<Application Name> のアンインストール" などに変更します。

セットアップ プロジェクトの使用例の参照先

セットアップ プロジェクトの使用例については、「配置のタスクとチュートリアル」を参照してください。

.NET Framework ベースのアプリケーションの配置を計画する方法

ガイド『Deploying .NET Framework-based Applications』では、.NET Framework ベースのアプリケーションの効果的な配置を計画、実装するために必要な情報を提供しています。

Windows インストーラー SDK をダウンロードできるサイト

Windows インストーラー SDK は、Microsoft ダウンロード センターからダウンロードできます。

http://go.microsoft.com/fwlink/?LinkId=161393

Crystal Reports を更新し、ヘルプを入手できるサイト

更新済みのソフトウェアとマージ モジュールは、次の BusinessObjects.com Web サイトのダウンロードと更新プログラムのページからインストールできます。

https://websmp110.sap-ag.de/~sapidp/002006825000000234912001j/

"修復できないビルド エラーです。" エラー メッセージの解決方法

Setup and Deployment Projects のビルド時に "修復できないビルド エラーです。" エラー メッセージが表示される場合は、次の文書を参照してください。

「[PRB] セットアップ/デプロイメント プロジェクトをビルドすると "修復できないビルド エラーです。" というエラー メッセージが表示される」(http://support.microsoft.com/?id=329214)。

検証エラー メッセージの解決方法

"An error occurred when validating. HRESULT = '80040155'" などのエラー メッセージが表示される場合は、「[PRB] セットアップ/デプロイメント プロジェクトをビルドすると "修復できないビルド エラーです。" というエラー メッセージが表示される」 (http://support.microsoft.com/?id=329214) を参照し、「登録が見つからない」の手順に従ってください。

カスタム動作の配置中に IIS を変更する方法

「Modifying Internet Information Services During Deployment with Custom Actions (カスタム動作での配置中のインターネット インフォメーション サービスの変更)」(http://msdn.microsoft.com/ja-jp/library/aa289522(vs.71).aspx(vs.71).aspx(vs.71).aspx(vs.71).aspx(vs.71).aspx) では、一般的な問題を解決する方法について説明しています。 次に例を示します。

  • ファイル システム エディターの Web フォルダーで、使用可能でない IIS フォルダーの設定を変更する方法

  • Visual Basic 6 と Visual Basic .NET 以降のバージョンの両方を使用するハイブリッド アプリケーションを配置する方法

  • Visual Basic 6 アプリケーションと比較して、Visual Studio .NET 以降で作成したアプリケーションを配置する場合の変更点

ASP.NET アプリケーションを配置する方法

Visual Studio .NET を使用した ASP.NET アプリケーションの配置については、「Deploying an ASP.NET App Using Visual Studio .NET (Visual Studio .NET を使用した ASP.NET アプリケーションの配置)」を参照してください。

Windows 2000 でのインストール後、アプリケーションの実行が失敗し、MDAC 2.8 が必要という警告が表示される

System.Data 名前空間を参照するアプリケーションは、MDAC (Microsoft Data Access Components) Version 2.8 以降との依存関係を持ちます。 ほとんどの場合、このファイルは、オペレーティング システムの一部として既にインストールされています。 Windows 2000 Service Pack 3 以前では、アプリケーションと共にコンポーネントをインストールすることが必要になる場合があります。 これは、コンポーネントをブートストラップ パッケージに追加し、インストール時に Microsoft からファイルをダウンロードすることで実現できます。 詳細については、「アプリケーション配置の必要条件」を参照してください。

カスタム動作のアクセス許可レベルを変更する方法

既定では、カスタム動作は SYSTEM 特権で実行されますが、タスクを完了するためには、より高い特権がカスタム動作に必要になることがあります。 この既定の動作を変更するには、カスタム動作の "noimpersonate" フラグを無効にします。 詳細については、「Custom Action In-Script Execution Options (カスタム動作のスクリプト内の実行オプション)」を参照してください。

関連するサポート技術情報の文書

次のサポート技術情報の文書は、Windows インストーラーの配置の問題について情報を提供しています。

参照

参照

VirtualDirectory プロパティ

その他の技術情報

アプリケーションとコンポーネントの配置

配置のタスクとチュートリアル