1

システムにインストールするための .msi ファイルを出力する Visual Studio インストーラー セットアップ プロジェクトがあります。.Net 4.0 で Visual Studio Pro 2013 を使用しています。

このアプリケーションは、主に、管理者以外の Windows 7 ユーザーが使用することを目的としています。ただし、ユーザーの制限により、プログラムは にInstallAllUsers設定された管理者アカウントのコンピューターにインストールされTrueます。

展開プロジェクトは、デスクトップとプログラム メニューにショートカットを追加します。

インストール後、プログラムがインストールされたフラッシュドライブが取り外され、問題なく管理者アカウントのショートカットからアプリケーションが手動で起動されます。

ただし、作成されたショートカットを使用して管理者以外のアカウントで初めてアプリケーションを起動すると、問題が発生します。ここで、次のエラーが発生します。

製品 MyApp のインストール パッケージが見つかりません。インストール パッケージ 'MyApp.msi' の有効なコピーを使用して、インストールを再試行してください。

興味深いのは、実行可能ファイルを Program Files フォルダーから直接起動しようとすると、問題なく動作することです。ショートカットを手動で作成することもできますが、それも同様に機能します。最後に、実際にプログラムをフラッシュ ドライブの .msi ファイルに転送すると、問題は解決します。ただし、これは特に、コンピューター上の複数の非管理者アカウントで実行する必要がある場合、手動で行う必要があります。管理者アカウントに一度プログラムをインストールして忘れられるようにしたい.

このエラーが発生するのはなぜですか? アプリのインストール後に Windows が .msi ファイルを探すのはなぜですか? 展開プロジェクトの一部のプロパティを変更して回避する方法はありますか?

4

1 に答える 1

0

さらに調査を重ねた結果、Windows がインストール ファイルを見つけようとする理由は、Visual Studio インストーラー セットアップ プロジェクトで作成されたショートカットが宣伝されているショートカット (宣伝されていないショートカットに対して) であるためであることがわかりました。アドバタイズされたショートカットにより、Windows は、ショートカットが指している不足しているファイルを置き換えることでインストールを修復できます (同様の問題はこちら)。

Visual Studio インストーラー セットアップ プロジェクトは、宣伝されていないショートカットをサポートしていないようですが、だまされてインストールされる可能性があります (詳細はこちら)。

さらに、Windows は起動時に修復が必要であると判断するため、インストール プロジェクトにも問題があるはずです。そのため、Visual Studio Installer Setup Project からWIXに切り替えることにしました。WIX は、私がインストールしたいものを正確に制御できるようにする必要があります。宣伝されていないショートカットを使用する予定はありませんが、WIX はそれらをサポートしています。

于 2016-08-12T15:27:30.670 に答える