1

システムにインストールする.msiファイルを出力するVisual Studio Installerセットアッププロジェクトがあります。 .NET 4.0でVisual Studio Pro 2013を使用しています。異なるWindows権限を持つユーザーのプログラムのインストール後の動作を制御する方法

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

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

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

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

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

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

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

答えて

0

私は、Visual Studio Installerセットアッププロジェクトで作成されたショートカットが広告されたショートカット(広告されていないショートカット)であるため、Windowsがインストールファイルを見つけようとしている理由を発見しました。アドバタイズされたショートカットは、ショートカットが指す欠落しているファイルを置き換えてインストールを修復します(同様の問題here)。

Visual Studioインストーラセットアッププロジェクトは、非公開ショートカットをサポートしていないようですが、インストールするには間違いがあります(詳細はhere)。

さらに、Windowsの起動時に修復が必要だと考えているため、インストールプロジェクトにも問題があるはずです。そのため、Visual Studio Installer Setup ProjectからWIXに切り替えることにしました。 WIXは、私がインストールしたいものを正確に制御し、非公開のショートカットの使用を計画していませんが、サポートしています。

+0

私は専門家ではありませんが、広告されたショートカットをすべてのユーザーのインストールで使用できることは間違いありません。 MSIは、Windowsインストーラキャッシュに自身のコピーを作成することになっていると思います。 –

関連する問題