首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WiX安装程序:安装到Appdata - Error ICE38,ICE64和ICE91

WiX安装程序:安装到Appdata - Error ICE38,ICE64和ICE91
EN

Stack Overflow用户
提问于 2013-09-05 14:03:05
回答 1查看 2.6K关注 0票数 8

我已经把头撞在这上面一段时间了,我终于屈服了(经过了大量的搜索),来到堆叠溢出处寻求帮助。

正如标题所示,我正在尝试创建一个安装程序,它可以执行每个用户的安装,而不需要任何提升的权限。

但是,下面的代码会在编译时生成大量ICE38和ICE64错误以及ICE91警告。

代码语言:javascript
复制
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="AppDataFolder">
        <Directory Id="AppRootDirectory" Name="[Manufacturer]">
          <Directory Id="INSTALLFOLDER" Name="[ProductName]" />
        </Directory>
      </Directory>
    </Directory>

    <Feature Id="ProductFeature" Title="ATestProject" Level="1">
      <ComponentGroupRef Id="modules" />
    </Feature>

“模块”是指组件安装目录为"INSTALLFOLDER“的heat.exe生成的.wxs文件的内容。

互联网上的解决方案表明我的modules.wxs文件有很多编辑工作,这是不可接受的-在这个发布过程中有超过1000个文件,任何不能自动化的东西(在构建时在命令行上或者用脚本完成)都是完全不可能的

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-09 14:18:19

您可以设置每个用户的安装,默认情况下,在windows 7和更高版本上,通过执行以下操作将安装到%localappdata%\程序;

代码语言:javascript
复制
<Property Id="ALLUSERS" Secure="yes" Value="2"/>
<Property Id="MSIINSTALLPERUSER" Secure="yes" Value="1" />

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="AppRootDirectory" Name="Manufacturer">
      <Directory Id="INSTALLFOLDER" Name="ProductName" />
    </Directory>
  </Directory>
</Directory>
<!-- ... -->
<!-- ... -->
<Feature Id="ProductFeature" Title="ATestProject" Level="0">
  <ComponentGroupRef Id="modules" />
</Feature>

基本上,在顶部设置两个属性将安装程序配置为“每个用户”安装,这是UAC友好的,不需要提升权限。有关详细说明,请参见

还请注意,ProgramFilesFolder变成了%localAppData%/programs为每个用户应用程序和安装到用户配置文件中的默认存储位置,而不是C:\programs (x86)\

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18638473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档