Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wix-使用注册表中的值填充编辑控件_Wix_Properties_Edit Control - Fatal编程技术网

wix-使用注册表中的值填充编辑控件

wix-使用注册表中的值填充编辑控件,wix,properties,edit-control,Wix,Properties,Edit Control,在安装“我的服务”期间,安装程序正在将SQL Server的名称写入注册表。 我创建了一个带有edit控件的对话框窗口,用户将在其中键入服务器名。现在我想用ChangeMode中注册表中的值填充这个控件。如果此注册表项为空,则用默认名称填充。 怎么可能解决呢? 我试图将RegistrySearch节点放入Control节点。但在我看来,它似乎不起作用。。 谢谢你的帮助 p.S.在这里查看了一些信息:。并尝试了如下代码: <Property Id="SERVCONNSTR" Value=".

在安装“我的服务”期间,安装程序正在将SQL Server的名称写入注册表。 我创建了一个带有
edit
控件的对话框窗口,用户将在其中键入服务器名。现在我想用ChangeMode中注册表中的值填充这个控件。如果此注册表项为空,则用默认名称填充。 怎么可能解决呢? 我试图将
RegistrySearch
节点放入
Control
节点。但在我看来,它似乎不起作用。。 谢谢你的帮助

p.S.在这里查看了一些信息:。并尝试了如下代码:

<Property Id="SERVCONNSTR" Value=".\SQLEXPRESS">            
        </Property>
<Property Id="CONNSEARCH">
<RegistrySearch Id="servconstr" Root="HKLM"
    Key="Software\$(var.Manufacturer)\SERVICE" Name="SQL Server" Type="raw"></RegistrySearch>
</Property>
<SetProperty Id="SERVCONNSTR" Value="CONNSEARCH"
     After="AppSearch"><![CDATA[CONNSEARCH AND (!FEATURE1=3 OR !FEATURE2=3 OR !FEATURE3=3)]]></SetProperty>

但在修改过程中,我仍然在编辑控件中获取。\SQLEXPRESS

我做错了什么?

放入,并将该属性绑定到。


康奈尔

我不知道为什么要使用两个属性,如果您使用registrySearch设置属性CONNSEARCH,它将检查注册表并为其分配在那里找到的值(如果存在)。这发生在AppSearch阶段,远远早于大多数UI的出现,您的编辑框将位于该阶段。因此,您也不需要使用SetProperty

是要用默认值填充注册表项,还是要用默认值填充属性

对于属性,只需填充使用注册表搜索的属性元素的Value属性。如前所述,如果在注册表中找不到任何内容,它将默认为

它看起来像这样


谢谢你的时间,燕。我找到了解决办法。
<Property Id="SERVCONNSTR" Value=".\SQLEXPRESS">            
        </Property>
<Property Id="CONNSEARCH">
<RegistrySearch Id="servconstr" Root="HKLM"
    Key="Software\$(var.Manufacturer)\SERVICE" Name="SQL Server" Type="raw"></RegistrySearch>
</Property>
<SetProperty Id="SERVCONNSTR" Value="[CONNSEARCH]"
     After="AppSearch">CONNSEARCH</SetProperty>
<Property Id="CONNSEARCH" Value="DefaultValue">
<RegistrySearch Id="servconstr" Root="HKLM"
    Key="Software\$(var.Manufacturer)\SERVICE" Name="SQL Server" Type="raw"></RegistrySearch>
</Property>