【发布时间】:2010-06-18 15:10:39
【问题描述】:
我有一个 x86 Windows 应用程序,它由几个服务和一个客户端 ui 组成。
由于说服各种 MSI 正确升级的各种问题,安装过程现在由一个向导式程序控制,该程序检测当前安装的内容并通过存储用户的当前设置、卸载现有软件和安装来处理升级新版本。
基本流程是:
- 看
HKLM\Software\Classes\Installer\Products - 遍历其中的 GUID 键以查找
ProductName="(my app name)" - 如果未找到,请改为从
HKCU\Software\Microsoft\Installer\Products开始重复 - 如果找到,请为用户提供升级(如前所述),否则为全新安装(即向导会询问用户各种问题)
现在,这几乎可以在您提到的任何 Windows 平台上运行,从 XP 开始。它仅在 Windows Server 2003 x64 上失败,因为向导未检测到现有安装 - 尽管存在与我测试的任何其他平台上完全相同的注册表项。
没问题:
- XP x32
- Vista x32、x64
- 服务器 2003 x86
- 服务器 2008 x86、x64
- 服务器 2008 R2 x64
- Windows 7 x86、x64
似乎只有 Server 2003 x64 出现此问题。
【问题讨论】:
标签: c# installation registry windows-server-2003 64-bit