问题:卸载替换 GINA 后,如果我使用 WIX 3.0 安装程序,我会在登录后立即注销。
我有一个 Windows XP 的替换登录进程 (GINA)。它由放置在系统目录 C:\windows\system32\NewGina.dll 中的单个文件和一个注册表项 (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\GinaDLL=NewGina.dll) 组成,我手动操作没有问题安装它,运行它,手动卸载它并正常登录。
我还可以在VS2008中使用微软安装包创建安装程序,安装、登录、卸载、登录仍然可以正常工作。
我遇到的问题是,当我使用 Wix 安装程序时,我安装、登录、卸载和登录,登录后我立即注销。立即注销后,我能够连接远程注册表并转储注册表。我尝试在注册表之前和之后进行比较,并尝试了进程监视器,希望能发现 Wix 安装程序在做什么,但操作和更改(大约 35,000)有点难以分析。注册表行(上面列出的)消失了,windows 应该恢复到原来的 msgina.dll
由于项目的其余部分使用 Wix 安装程序,我希望使用它。
关于如何让它工作并避免自动注销的任何想法?
谢谢
APB
我的 Wix 脚本看起来像
<Package InstallerVersion="200" Compressed="yes" />
<Condition Message="This application is only supported on Windows XP">
<![CDATA[(VersionNT = 501)]]>
</Condition>
<InstallExecuteSequence>
<ScheduleReboot After="InstallFinalize"/>
</InstallExecuteSequence>
<Media Id="1" Cabinet="NewGina.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="SystemFolder">
<Component Id="NewGina" Guid="cdbdfbe9-8137-4305-98cb-a05618ea0ade" >
<File Source="..\NewGina\Release\NewGina.dll" Checksum="yes" />
</Component>
<Component Id="RegistryEntries" Guid="cdbdfbe9-8137-4305-98cb-a05618ea0adf" >
<RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" Action="createAndRemoveOnUninstall">
<RegistryValue Type="string" Name="GinaDLL" Value="NewGina.dll" />
</RegistryKey>
</Component>
</Directory>
</Directory>
<Feature Id="NewGina" Title="NewGina" Level="1" >
<ComponentRef Id="NewGina" />
<ComponentRef Id="RegistryEntries" />
</Feature>