mar*_*c_s 6 windows-installer wix windows-7 wix3.8
我发现WiX 3.8和Windows Installer存在一个奇怪的问题.
我创建了一个Outlook插件,我希望没有管理员权限的最终用户能够在他们的计算机上安装.
因此,我仔细确认
C:\program files
在安装过程中不要写入任何系统级目录(如等)HKEY_LOCAL_MACHINE
)在我的WiX脚本中,我确保设置ALLUSERS=0
并设置我找到的所有其他相关属性perUser
或limited
:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Product Id="*" Name="MyAddin" Language="1033" Version="1.0.0"
Manufacturer="Me" UpgradeCode="-some-guid-" Codepage="1252">
<Package InstallerVersion="200" Compressed="yes"
InstallScope="perUser"
Description="yada yada" Manufacturer="Me" Languages="1033" SummaryCodepage="1252"
InstallPrivileges="limited"
Comments="yada yada" />
<Property Id="ALLUSERS" Value="0"/>
Run Code Online (Sandbox Code Playgroud)
我曾经想过会有用 - 但是在我的测试系统上,使用普通的标准用户帐户(没有管理员权限),我的安装失败了 - 有一个消息对话框告诉我我没有足够的权限为所有用户安装这个....
WTF?我特意想为这个*用户安装这个 - 而不是机器上的所有用户!
看看MSI日志,我看到了令人惊讶的事情:
MSI(c)(B0:B4)[18:08:08:543]:注意:1:2262 2:AdminProperties 3:-2147287038
MSI(c)(B0:B4)[18:08:08:543]:机器策略值'AlwaysInstallElevated'为0
MSI(c)(B0:B4)[18:08:08:543]:用户策略值'AlwaysInstallElevated'为0
MSI(c)(B0:B4)[18:08:08 :543]:使用用户权限运行产品'........':未分配.
...
MSI(c)(B0:B4)[18:08:08:543]:物业变更:修改ALLUSERS属性.其当前值为"0".它的新价值:'1'.
*为什么 Windows Installer决定将ALLUSERS
属性更改为1
?!?!?我从来没有告诉它!啧.......
有任何想法吗?思考?指针?
Rob*_*ing 11
根据ALLUSERS的MSI SDK文档,创建每用户安装的正确方法是将ALLUSERS设置为""(下面加粗的第二个子弹):
值"0"未定义,因此您可以获得Windows Installer选择的任何未定义行为(选择以下之一):周/月/年/操作系统/ Service Pack.
有关此问题背后的详细信息,请参阅此博客文章.
您的InstallScope(和InstallPrivileges)应该足以强制每个用户安装。所以我会拿出你明确的 ALLUSERS=0 并看看你是否得到了每个用户的安装。如果安装尝试访问受限项目,您仍然会收到安全错误,但这是一个单独的问题。
归档时间: |
|
查看次数: |
1344 次 |
最近记录: |