1

我一直在关注wix 教程,并通过 Visual Studio 2012 创建了一个简单的安装程序。

我正在尝试将 excel 插件安装到用户 AppData 文件夹中。传统上,我提供了一个批处理文件,它将插件复制到 %AppData%\Roaming\Microsoft\AddIns。我已经在 wix 中复制了它:

<Directory Id="TARGETDIR" Name="SourceDir">
  ... other stuff
  <Directory Id="AppDataFolder" Name="AppData">
    <Directory Id="Microsoft" Name="Microsoft">
      <Directory Id="AddIns" Name="AddIns">
        <Component Id="MyAddin" Guid="...">
          <File Id="MyAddinXla" Source="..\Data\MyAddin.xla"/>
          <RemoveFolder Id="Microsoft" On="uninstall" Directory="Microsoft"/>
          <RemoveFolder Id="AddIns" On="uninstall" Directory="AddIns"/>
          <RemoveFile Name="MyAddin.xla" Id="MyAddinXla" On="uninstall"/>
          <RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]\AddinKeyPath' Type='string' Value='' KeyPath='yes' />
        </Component>
      </Directory>
    </Directory>
  </Directory>
</Directory>

现在,如果我没有 RemoveFolder 指令,wix 编译器会抱怨,即使这些文件夹在安装之前已经存在。

当我卸载该应用程序时,AddIns 目录本身被删除(其中没有其他内容)。

我的问题是:我是否应该关心 AddIns 文件夹是否为空(如果没有它,任何 Microsoft 应用程序都会挣扎),如果我应该,我如何告诉安装程序不要删除它?

4

0 回答 0