我已经把头撞在这上面一段时间了,我终于屈服了(经过了大量的搜索),来到堆叠溢出处寻求帮助。
正如标题所示,我正在尝试创建一个安装程序,它可以执行每个用户的安装,而不需要任何提升的权限。
但是,下面的代码会在编译时生成大量ICE38和ICE64错误以及ICE91警告。
<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个文件,任何不能自动化的东西(在构建时在命令行上或者用脚本完成)都是完全不可能的。
提前感谢!
发布于 2013-09-09 14:18:19
您可以设置每个用户的安装,默认情况下,在windows 7和更高版本上,通过执行以下操作将安装到%localappdata%\程序;
<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)\
https://stackoverflow.com/questions/18638473
复制相似问题