【问题标题】:Wix - Keep Folders after uninstallWix - 卸载后保留文件夹
【发布时间】:2011-05-08 10:10:05
【问题描述】:

我想使用 Wix 创建一个安装程序,将某个文件复制到文件夹 "C:\Users\Your User\Documents\Visual Studio 2010\Addins\"

当我编写以下代码时:

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="PersonalFolder">
      <Directory Id="VS2010" Name="Visual Studio 2010">
        <Directory Id="VSAddins" Name="Addins">
          <Component Id="VSAddin" Guid="Some Guid">
            <File Id="MyAddin.Addin" Name="MyAddin.Addin" DiskId="1" Source="..\Resources\" />
            <RegistryValue Root='HKCU' Key='SOFTWARE\ABCD\MY_Addins'
                           Type='string' Value='MY_Addin'
                           KeyPath='yes' />
          </Component>
        </Directory>

我收到以下编译错误:

ICE64:目录 VS2010 在用户配置文件中,但未列在 RemoveFile 表中。

我该如何克服这个错误?

我知道我可以在“组件”范围内添加以下代码:

<RemoveFolder Id="VS2010" On='uninstall'/>

但我不希望卸载删除我没有创建的文件夹(尤其是 Visual Studio 2010 的文件夹...)

感谢您的帮助, 马克西姆

【问题讨论】:

    标签: wix wix3 wix3.5


    【解决方案1】:

    请问您为什么将它放在用户的个人资料中,而不是为所有用户安装它?我发现每个用户的组件会在未来产生各种服务问题。相反,对于我的 IsWiX 项目,我将 AddIn 部署到 C:\ProgramData\Microsoft\MSEnvShared\AddIns。

    您可以在IsWiXAddInMM.wxs查看完整源代码

    【讨论】:

    • 谢谢,我确实没有考虑过这个选项。 UsersDocuments\Visual Studio 2010\Templates\ProjectTemplates 呢?我还需要在那里复制一些文件。
    • 看看 WiX VSExtension。他们有一些预定义的搜索,例如 VS90_ITEMTEMPLATES_DIR。就我个人而言,我有一个针对 2005 / 2008 的不同安装程序,我将文件放置到主安装目录,然后使用 CopyFile 元素将文件复制到 VS 目录(如果存在)。然后我使用 EXE 自定义操作调用 devenv /setup(如果存在)。
    猜你喜欢
    • 2012-02-14
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 2020-05-28
    • 2013-11-10
    相关资源
    最近更新 更多