簡體   English   中英

WIX安裝程序在LocalAppDataFolder中添加和刪除文件

[英]WIX Installer Adding and Removing files in LocalAppDataFolder

我有一個Internet Explorer加載項,它會在LocalAppDataFolder \\ Microsoft \\ Windows \\ Temporary Internet Files \\ CompanyName \\ AddOnName \\中生成一些文件

我有一個用於該應用程序的WIX安裝程序,我想在安裝和卸載過程中都刪除CompanyName \\ AddOnName \\文件夾。

我以前從未使用過WIX,而我更像是MacOS人士,所以所有這些東西對我來說都是有點陌生​​。 這是我現在擁有的一部分(在我的Product.wxs文件中):

<Feature Id="ProductFeature" Title="Company IE Add-On" Level="1" ConfigurableDirectory="INSTALLFOLDER">
  <ComponentRef Id="INSTALLFOLDER" />
  <ComponentGroupRef Id="ProductComponents" />
  <ComponentRef Id="dataDirectory"/>
</Feature>

<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder">
       <Directory Id="INSTALLFOLDER" Name="Company IE Add-On" >
          <Component Id="INSTALLFOLDER" Guid="THERE IS A GUID HERE">
          <RemoveFolder On="both" Id="INSTALLFOLDER"/>
          <RegistryValue Root="HKLM" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="Company IE Add-On" />
      </Component>
    </Directory>
  </Directory>
  <Directory Id="LocalAppDataFolder">
    <Directory Id="Microsoft">
      <Directory Id="Windows">
        <Directory Id="TempInetFiles" Name="Temporary Internet Files">
          <Directory Id="CompanyName">
            <Directory Id="AddOnName">
              <Component Id="dataDirectory" Guid="E5938D44-5315-43D4-94EC-313F6CDB290B" NeverOverwrite="no" Permanent="no">
                <RemoveFolder Id="AddOnName" On="both"/>
              </Component>
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </Directory>
  </Directory>
 </Directory>
</Fragment>

但這給了我諸如“將組件dataDirectory安裝到用戶配置文件。它必須使用HKCU下的注冊表項作為其KeyPath而不是文件的錯誤”。

和“目錄CompanyName在用戶配置文件中,但未在RemoveFile表中列出。”

任何幫助將不勝感激。 謝謝。

我做了類似的事情,此代碼對我有用:

   <!--Setting up the shortcuts for the product-->
    <Directory Id="ProgramMenuFolder" Name="Programs">
    <Directory Id="ProgramMenuDir" Name="$(var.ShortcutName)">
      <Directory Id="ProgramMenuSubFolder" Name="LOGGERS">
      </Directory>
    </Directory>
  </Directory>
  </Directory>

 <Component Id='LoggersShortcut' Guid='2A6D411E-5CE9-4F38-8F25-361CBFCABB5A' Directory='ProgramMenuSubFolder'>
    <CreateFolder Directory="ProgramMenuSubFolder"  />
    <RemoveFolder Id='ProgramMenuSubFolder' On='uninstall' Directory='ProgramMenuSubFolder'/>
    <RegistryValue Root='HKCU' Key='Software\ShortcutProperty\[PRODUCTNAME]' Type='string' Value='1' KeyPath='yes' />
  </Component>

WiX要求您在創建用戶特定組件時始終使用HKCU注冊表項。 在這種情況下,dataDirectory將始終安裝在當前用戶的配置文件中。 在組件內部添加HKCU或HKMU注冊表元素,如下所示:

<Component Id="dataDirectory" Guid="E5938D44-5315-43D4-94EC-313F6CDB290B" NeverOverwrite="no" Permanent="no">
  <Registry Root='HKMU' Key='Software\[Manufacturer]\[ProductName]' KeyPath='yes'/>
  <RemoveFolder Id="AddOnName" On="both"/>
</Component>

如果您已經安裝了HKLM \\ Software [Manufacturer] [ProductName],則在每台計算機安裝的情況下這不會產生任何可見的效果。 如果是按用戶安裝,它將創建HKCU \\ Software [Manufacturer] [ProductName]。

如果HKMU仍然失敗並出現相同的錯誤,請用HKCU替換HKMU。

對於第二個問題,請簽出: 目錄xx在用戶配置文件中,但未在RemoveFile表中列出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM