我正在使用此代码尝试从注册表中读取
http://www.codeproject.com/KB/system/modifyregistry.aspx
如果我从 Visual Studio 运行应用程序,代码将按预期工作 - 它从注册表中读取一个密钥并成功检查它是否为 NullOrEmpty,如果是,则用户被重定向到激活页面。
如果我构建我的安装程序(WIX 3.7)并安装它,应用程序似乎忽略了激活检查。它似乎无法与注册表交互。
在 WIX 安装程序中,我强制创建应用程序密钥并强制删除应用程序密钥,最初将其留空。我已将 util:permissionEx 添加到注册表项路径中的每个键,一直到注册表值……但检查似乎被忽略了。
通过 Visual Studio 工作,安装后失败。
这是我的代码片段:
<Component Id="$(var.ProductName)RegistryKeys" Guid="A_GUID">
<RegistryKey Id="FCSRegKey" Root="HKCU" Key="Software\CompanyName" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<util:PermissionEx User="$(var.ProductName)AppPool" Domain="IIS APPPOOL" Read="yes" Write="yes"
GenericRead="yes"
GenericWrite="yes"
GenericExecute="yes"
Delete="yes"
TakeOwnership="yes"/>
<RegistryKey Key="$(var.ProductName)$(var.Version)$(var.Edition)" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<util:PermissionEx User="$(var.ProductName)AppPool"
Domain="IIS APPPOOL"
Read="yes"
Write="yes" GenericRead="yes" GenericWrite="yes" GenericExecute="yes"
Delete="yes"
TakeOwnership="yes"/>
<RegistryValue Type="string" Name="$(var.KeyName)" Value="" KeyPath="yes">
<util:PermissionEx User="$(var.ProductName)AppPool"
Domain="IIS APPPOOL"
Read="yes"
Write="yes"
GenericRead="yes"
GenericWrite="yes"
GenericExecute="yes"
Delete="yes"
TakeOwnership="yes"/>
</RegistryValue>
</RegistryKey>
</RegistryKey>
</Component>
我到底做错了什么?
我在 64 位机器上使用 Windows 7 SP 1
干杯和感谢,
令人难以置信的沮丧。