システムにインストールする.msiファイルを出力するVisual Studio Installerセットアッププロジェクトがあります。 .NET 4.0でVisual Studio Pro 2013を使用しています。異なるWindows権限を持つユーザーのプログラムのインストール後の動作を制御する方法
このアプリケーションは、主に管理者以外のWindows 7ユーザーが使用することを意図しています。ただし、ユーザーの制限により、InstallAllUsers
がTrue
に設定された管理者アカウントのコンピュータにプログラムがインストールされます。
展開プロジェクトは、デスクトップとプログラムメニューにショートカットを追加します。
インストール後、プログラムがインストールされているフラッシュドライブが削除され、管理アカウントのショートカットから問題なくアプリケーションが手動で起動されます。
ただし、作成したショートカットを使用して管理者以外のアカウントでアプリケーションを初めて起動すると、問題が発生します。これは、次のエラーが発生する場所です。
MyApp製品のインストールパッケージが見つかりません。インストールパッケージ「MyApp.msi」の有効なコピーを使用してインストールを再試行してください。
興味深いのは、Program Filesフォルダから直接実行ファイルを起動しようとするとちょっとうまくいくということです。私は手動でショートカットを作成することもでき、それも同様に動作します。最後に、私が実際にフラッシュドライブの.msiファイルにプログラムを向けると、問題はなくなります。しかし、これは、手動で集中的です。特に、コンピュータ上の複数の管理者以外のアカウントで実行する必要がある場合にはそうです。管理者アカウントでプログラムを一度インストールして忘れてしまいたいです。
なぜこのエラーが発生しますか?なぜWindowsは、アプリケーションがインストールされた後に.msiファイルを探していますか?展開プロジェクトの一部のプロパティを変更することで回避する方法はありますか?
私は専門家ではありませんが、広告されたショートカットをすべてのユーザーのインストールで使用できることは間違いありません。 MSIは、Windowsインストーラキャッシュに自身のコピーを作成することになっていると思います。 –