質問

VS2008でセットアッププロジェクトを作成しました。私のWinFormsアプリは.NET 2.0を使用しているため、.NET 2.0 Prerequisityを選択してセットアッププロジェクトをビルドしました。

クリーンなPCでSetup.msiを実行すると、.NETが欠落していることを正しく検出し、インストールするかどうかを尋ねます。 .NETが正常にインストールされた後、インストーラーは単に終了し、アプリのインストールを続行しません(そうすべきだと思います)。

.NETが既にインストールされているPCでMSIファイルを実行すると、アプリが正しくインストールされます。

.NET 2.0とアプリを1ステップで一緒にインストールする方法はありますか?

役に立ちましたか?

解決

製品のインストール方法

セットアッププロジェクトは2つのファイルを出力します:

  • Windowsインストーラーパッケージ(.msi)、および
  • いわゆるブートストラップ(setup.exe)

ブートストラッパーは、指定したすべての前提条件の有無を確認し、まだインストールされていない場合はダウンロードしてインストールする可能性があります、アプリケーションのインストールを続行します(.msiを呼び出して)。 そのため、.msiファイルではなく、常にsetup.exeを起動してアプリケーションをインストールする必要があります(すべての前提条件がターゲットシステムにあることがわかっている場合を除きます)。

Krakkosが言うように、ブートストラップは前提条件とアプリケーション(つまり.msiファイル)の両方をインストールします。ただし、ブートストラッパーによるmsiのインストールを妨げるような構成設定については知りません。

トラブルシューティングを行うには、インストールのログを作成して、ログファイルで問題を探すことができます。

他のヒント

Divoに感謝、

MSIファイルを実行していました。

Setup.EXEファイルの実行時に制限はありますか?正しく覚えている場合は、Windows 2000で一度実行しようとしましたが、実行されませんでした。 MSIファイルのみを実行できました。クリーンなWin2000を搭載したPCでチェックして、戻ってきます。

編集:クリーンなWindows 2000 SP4で試しましたが、結果は次のとおりです。

  • Kernel32.dllにHeapSetInformationがないことを示すメッセージが表示され、Setup.exeは実行されません
  • Setup.msiは実行されません(拡張子.msiは不明です)

次に、Windows Installer 3.1を手動でインストールしました:

  • Setup.exeは引き続き同じエラーメッセージで実行されません
  • Setup.msiは正常に実行されます(ただし、.NETのみをインストールします...私の最初の問題はありません)

Windows XPでは、Setup.exeは問題なく実行されます。

Win2000を使用しているユーザーは、Windows Installer 3.1、.NET 2.0をインストールしてからアプリを手動でインストールする必要があるようです。 .NETを手動でインストールしても、Win2000 SP4ではSetup.exeに同じエラーメッセージが表示されます。

編集:Win 2000の問題は、 Windows 2000 SP4用の更新プログラムのロールアップ1(KB891861)

このHanselminutesのエピソードでは、Paint.Netの詳細について詳しく説明しています。ダウンロード&の手配必要な.NETフレームワークをオンデマンドでインストールし、アプリケーションのインストールと統合します。確かに、これはおそらくほとんどのアプリケーションが必要とするより複雑な方法ですが、それでも興味深い議論です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top