C# 如何使用C在安装包中使用启动条件选项

C# 如何使用C在安装包中使用启动条件选项,c#,installation-package,C#,Installation Package,我希望我的应用程序在开始安装诺基亚\u PC\u套件\u rel\u 7\u 0\u 8\u 2之前进行检查 我的步骤是: 1我添加了注册表搜索,其属性为 Property = PCSUITERUNTIMEEXISTS, RegKey = HKEY_LOCAL_MACHINE\SOFTWARE\PCSuite\Product, Root= vsdrrHKLM, Value = Nokia Pc Suite 注意:我从注册表编辑器中获得了value属性的值,当我双击PCSiute时,我找到了产品

我希望我的应用程序在开始安装诺基亚\u PC\u套件\u rel\u 7\u 0\u 8\u 2之前进行检查 我的步骤是:

1我添加了注册表搜索,其属性为

Property = PCSUITERUNTIMEEXISTS, RegKey = HKEY_LOCAL_MACHINE\SOFTWARE\PCSuite\Product, Root= vsdrrHKLM, Value = Nokia Pc Suite
注意:我从注册表编辑器中获得了value属性的值,当我双击PCSiute时,我找到了产品。当我单击它时,我发现了一个包含2个文本的对话框:

值名称 价值数据 2我添加了名为PCSuite Runtime installed的新启动条件,如果没有提示用户 其性质是:

    condition = PCSUITERUNTIMEEXISTS //(it's a drop down list so I selected the condition I created in "Registry Search"), 
Messege = [ProductName] requires Nokia_PC_Suite_rel_7_0_8_2  runtime. 
Please run setup.exe to install the prerequisites for this application.
现在在setup.exe中,我添加了Nokia_PC_Suite_rel_7_0_8_2.exe作为先决条件,因此当用户双击setup.exe时,他会要求他安装Nokia_PC_Suite_rel_7_0_8_2,如果他取消整个安装,则会停止

实际发生的情况是,当我单击.msi文件时,始终显示消息[ProductName]需要诺基亚\u PC\u套件\u rel\u 7\u 0\u 8\u 2运行时。请运行setup.exe安装此应用程序的必备组件。虽然我的电脑上安装了PCSuite版本

那怎么办呢?我希望他继续安装,如果他发现PCSuite,如果没有显示消息,那么用户将转到setup.exe。
另外,当我卸载PCSuite并单击onsetup.exe时,它开始安装PCSuite,当他完成安装后,显示上一条消息并退出安装。

快速测试显示,您需要从注册表项中省略HKEY_LOCAL_MACHINE\。因此,您的搜索注册表项如下所示:

Property: PCSUITERUNTIMEEXISTS
RegKey: SOFTWARE\PCSuite\Product
Root: vsdrrHKLM
Value:  Nokia Pc Suite
诺基亚Pc套件需要是一个值,而不是一个包含数据的键。我注意到在我的测试中,注册表项中只有一个没有数据的值,检查仍然会失败

如果只是尝试检查是否存在键,请将该值留空