使用Visual Studio Installer安装附加.exe:注册表检测条件疑问
关于VS安装附加程序的注册表检测与条件判断问题
注册表检测属性的返回值类型:
Windows Installer中通过注册表搜索生成的属性是字符串类型。如果找到目标注册表项/值,属性会被赋值为对应的值(比如检测存在性时,可能设为"1"或者键的实际内容);如果未找到,该属性不会被定义(相当于空状态)。条件
NOT WEBVIEW2的正确性:
这个条件是否有效,取决于你对WEBVIEW2属性的定义逻辑:- 若你的注册表搜索规则是「找到对应项时,给
WEBVIEW2赋值(比如"1")」,那么NOT WEBVIEW2是有效的——当属性不存在(未找到注册表项,即未安装)时,条件为真,会触发安装操作;当属性存在(已安装)时,条件为假,跳过安装。 - 更严谨的写法可以是
NOT EXISTS WEBVIEW2或者WEBVIEW2="",但NOT WEBVIEW2在绝大多数场景下都能正常工作,因为只要属性存在,不管其值是什么,NOT WEBVIEW2都会判定为假。
- 若你的注册表搜索规则是「找到对应项时,给
额外提醒:
要注意注册表搜索的位数适配(32位/64位系统的注册表路径差异),确保你搜索的注册表项确实是目标程序(比如WebView2)安装后会生成的标识项,避免因路径错误导致检测失效。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

