1

開発したアプリのアンインストーラー レジストリ キーの作成中に、EstimatedSize 値を使用しようとしましたが、指定した値がプログラムのエントリの横にある [プログラムの追加と削除] リストに表示されません。この値を使用するための適切な手順を見つけようとしましたが、役に立ちませんでした。誰でもこの問題について経験がありますか? あなたの助けをいただければ幸いです。

Divoは私を正しい軌道に乗せたので、EstimatedSize 値を正しく表示する方法について段階的な手順を投稿することにしました。

  1. EstimatedSize を含むすべての関連プロパティを含むレジストリ キーを作成します。この値は、レジストリの ARPCache キーに複製されます
  2. ARPCache フォルダー内のレジストリ キーを見つけ、SlowInfoCache バイナリ値を削除し、Changed 値を 1 に設定します。
  3. 次に [プログラムの追加と削除] リストを開くと、Windows が生成した任意の値ではなく、EstimatedSize エントリで指定した値が表示されます。
4

4 に答える 4

3

下のEstimatedSizeの値を変更することがわかりました

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{my-guid-value}

直接的な効果はありません。この値は次のキーにキャッシュされます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\{my-guid-value}\SlowInfoCache

このSlowInfoCache値を削除 (名前を変更) した後にのみ、更新されたサイズが [プログラムの追加と削除] の下に表示されます。

よろしく、ディーボ

于 2008-11-25T19:49:08.343 に答える
3

Windows7 では、任意の値を書き込んでも問題なく動作します。

私は、この値を自動的に埋めたり、このキーを書き込んだり、ここで魔法のようなことをしたりしない NSIS を使用しています。ただし、通常のスクリプト コマンドを使用して、自分でレジストリ キーを作成し、自分で必要なものを入れることができます。

これは NSIS *.nsi スクリプトです。申し訳ありませんが、アクティブな行は 3 行しかありません。NSIS を知らなくても、私が任意にキーを作成し、選択した値をそれに書き込んでいることを理解する必要はないと思います。また、私がそこに悪い値を入れていたとき、私が書いたものとまったく同じようにプログラムの追加/削除に表示されたこともわかります。(最初は値がバイト単位であると想定していたため、3.2 MB のアプリが 3.2 GB として表示されました)

foo.nsi からの抜粋:

[...]

; ARP = just convenience variable to hold the long reg key path
!define ARP "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"

[...]

; Specify a section ID like SEC_01, for obtaining its size in kilobytes later
Section "Install" SEC_01

; [...copy all files here, before SectionGetSize...]

; Obtain the size of the files, in kilobytes, in section SEC_01
SectionGetSize "${SEC_01}" $0

; Create/Write the reg key with the dword value
WriteRegDWORD HKLM "${ARP}" "EstimatedSize" "$0"

[...write the other keys in the same reg path...]

SectionEnd

[...]
于 2009-11-19T19:13:04.640 に答える
1

このトピックはかなり古いものですが、Windows XPの[プログラムの追加と削除]ウィンドウでアプリケーションのサイズを表示する方法を探しているときに検索したので、他の誰かが役立つと思った場合に備えて、見つけたものを投稿します。

次の下にあるアプリケーションのフォルダに移動するだけです。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\\{app_name}

そして、「InstallLocation」と呼ばれる英数字の値を追加します。この値は、アプリケーションのメインフォルダーです。

(インストール中ではなく)手動で実行している場合、それを機能させるには、フォルダーを削除する必要があります。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\\{app_name}

アンインストール情報をキャッシュするためです。

于 2011-08-17T15:31:13.407 に答える
1

どのようなインストーラーを使用しましたか? MSI?

Windows インストーラーは、インストール中にこの値を決定して設定します (MSDN: Uninstall Registry Keyを参照してください) 。

この値を手動で設定することはできないと思います。舞台裏では多くのことが行われています (いくつかの本当に「不十分な」もの) ( http://blogs.msdn.com/oldnewthing/archive/2004/07/09/178342.aspx )

よろしく、ディーボ

于 2008-11-25T17:12:05.943 に答える