4

Visual Studioセットアッププロジェクトを作成し、メインアプリ用にインストーラークラスを作成しました。このインストーラークラスでは、アンインストーラー関数をオーバーライドして、アプリによって作成された余分なフォルダーをクリーンアップしました。これはWindowsXPでは正常に機能しますが、UACと関係があると思われるため、Windows7では機能しません。アンインストーラーに特権を昇格させるにはどうすればよいですか?

私は別の投稿でこの質問をしましたが、私の意図がはっきりしていませんでした。

これらのリンクを見つけましたが、関連があるかどうかわかりません:http:
//msdn.microsoft.com/en-us/library/aa370852.aspx
http://msdn.microsoft.com/en-us/library /aa370134%28v=VS.85%29.aspx




更新(2011年11月7日)

msiインストールアプリのプロパティを変更するために使用できるOrcaについて知りましたが、適切なドキュメント(または例/チュートリアル)がありません。したがって、この問題を修正するために私が行った手順は次のとおりです。

  1. OrcaでappInstal.msiを開きます。
  2. 左側のテーブルからcustomActionをクリックします
  3. すべての行の最後に新しいエントリを追加します(新しい行をダブルクリックして)
  4. アクション名にはElevate_Install_Uninstallと入力し、タイプには3072と入力します。
  5. ターゲットにALLと入力し、ソースを空のままにします

これが誰かに役立つことを願っています/

4

3 に答える 3

1

私の想定では、MSIパッケージをアンインストールするときに実行される新しいカスタムアクションを作成しました。インストール時またはアンインストール時に昇格されたカスタムアクションを実行するには、それを延期し、偽装フラグでマークする必要があります。

WiXでは、CustomAction要素の次のプロパティを設定します。

  • Execute="deferred"
  • Impersonate="no"

Windowsインストーラーに関しては、カスタムアクションで次のビットを設定する必要がありmsidbCustomActionTypeInScriptますmsidbCustomActionTypeNoImpersonateカスタムアクションのスクリプト内実行オプションを参照してください。

于 2011-10-29T19:17:52.587 に答える
1

VistaのUACはウィンドウの7に似ているため、ここでいくつかのヘルプを見つける必要があります。

http://www.professionalvisualstudio.com/blog/2007/10/05/enabling-your-application-for-uac-on-vista/

この記事では、UACで問題が発生することなく実行されるようにアプリを調整する方法について詳しく説明します。

マニフェストファイルをソリューションに追加して、特定のレベルの特権で実行されるようにすることができます。

于 2011-10-28T18:52:11.260 に答える
1

次の属性をアンインストール プロシージャに追加します。

    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
    }
于 2012-02-04T17:47:49.703 に答える