Visual studio 2008 在VS2008上的安装项目中使用条件字段

Visual studio 2008 在VS2008上的安装项目中使用条件字段,visual-studio-2008,conditional,setup-project,Visual Studio 2008,Conditional,Setup Project,在我的应用程序安装项目中,我尝试在HKLM/Software或HKCU/Software下设置注册表项,具体取决于用户在安装过程中是选中“所有用户”还是“仅限我” 为此,我一直在尝试使用ALLUSERS属性,并分别对照1或“”进行检查: 诱惑者=1 ALLUSERS=“” 我将keys AlwaysCreate属性设置为False。但在安装HKLM/Software/my_密钥和HKCU/Software/my_密钥时,都会创建 我错过了什么 更新:我一直在尝试其他替代方法,如将ALLUSE

在我的应用程序安装项目中,我尝试在HKLM/Software或HKCU/Software下设置注册表项,具体取决于用户在安装过程中是选中“所有用户”还是“仅限我”

为此,我一直在尝试使用ALLUSERS属性,并分别对照1或“”进行检查:

  • 诱惑者=1
  • ALLUSERS=“”
我将keys AlwaysCreate属性设置为False。但在安装HKLM/Software/my_密钥和HKCU/Software/my_密钥时,都会创建

我错过了什么


更新:我一直在尝试其他替代方法,如将ALLUSERS括在方括号中、启用可传递属性或使用ALLUSERS!=1而不是“”。无济于事。我现在放弃了这个,我只是在HKLM下为这两个案例创建。但如果有人能给出答案,我将不胜感激。

我对Windows Installer的理解是,这种行为是抽象的,因此开发人员无需担心。也就是说,如果未设置ALLUSERS属性,您的安装包将“自动”将注册表项放在HKCU而不是HKLM中。请参阅MSDN上的文档,网址为。因此,听起来好像您正试图通过安装项目重新实现此功能;我建议基于ALLUSERS属性放弃该条件


作为旁注,AlwaysCreate属性控制在何种情况下创建注册表项,特别是与注册表项内容相关的注册表项。将其设置为false表示“如果没有任何子键或值,则不要创建此键”。将其设置为true意味着“创建此键,无论它是否具有任何子键或值”。MSDN上再次提供文档。

如果有任何人可以改进此问题,请立即提问。我觉得奇怪,到目前为止我没有得到任何答案。要么是我偶然发现了一个罕见的、无人知晓的广泛使用的功能,要么是我问得不对。虽然它最初并没有解决我的问题,但你却暗示我可能出了什么问题。谢谢阿拉斯泰尔斯。问题与此有关。我做错了什么。我正在使用HKLM和HKCU蜂箱,并试图有条件地设置键。但是,我完全错过了安装项目注册表编辑器上的最后一项。一个引人注目的“用户/机器蜂巢”。我应该把钥匙放在那里,而不是直接放在HKLM或HKCU下面。我真傻。