我想问一个WiX安装程序问题。我创建了一个可以正常运行的安装程序。我仍然需要询问用户一些特定信息(GUI已经完成),并将其写入配置文件中。
从这个片段中,我想我可以使用INSTALLFOLDER
全局变量。
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="IISROOT" Name='WebDir'>
<Directory Id="INSTALLFOLDER" Name="IVRDesigner">
</Directory>
</Directory>
</Directory>
这是我要使用的部分。如果源标记正确填充,则此代码取自教程,应该可以正常工作。该..\src\Web.config
仅仅是一个虚拟的,所以代码可以编译。该web.config
文件的默认安装路径为C:\inetpub\wwwroot\myfolder
,但用户可以在安装过程中更改此路径。
问题是:我如何在这里使用全局变量,或者您推荐哪种解决方案?
提前致谢。
<Component Id="ConfigureWebConfig" Guid="*">
<File Id="Web.config" Name="MyConfigfile" Vital="yes" KeyPath="yes"
Source="..\src\Web.config" />
<util:XmlFile Id="AppConfigSetConnStr" Action="setValue"
Permanent="yes" File="[#Web.config]"
ElementPath="/configuration/connectionStrings/add[\[]@name='GeoIVRDesignerEntities'[\]]" Name="connectionString"
Value="data source=[DBSERVER];" />
</Component>
在产品标签下,我将要在配置文件中添加希望更改的属性,如下所示:
<Property Id="BUILDRAN" Value="INSTALLER"/>
<Property Id="EMAIL_RECEIPIANT" Value="[email protected]" />
创建目录结构的片段
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir" >
<Directory Id="BasicDir" Name="Dev_Home">
<Directory Id="BasicDirSuite" Name="TEST">
<Directory Id="INSTALLFOLDER" Name="DesignPatterns" />
</Directory>
</Directory>
</Directory>
</Fragment>
声明另一个用于转换配置文件的片段
<util:XmlFile Id="AppConfigSetBuildRan" Action="setValue" Permanent="yes" File="[#App.config]"
ElementPath="/configuration/applicationSettings/MyApp.Properties.Settings/setting[\[]@name='BuildRan'[\]]/value"
Value="[BUILDRAN]" />
<util:XmlFile Id="AppConfigSetEmail" Action="setValue" Permanent="yes" File="[#App.config]"
ElementPath="/configuration/applicationSettings/MyApp.Properties.Settings/setting[\[]@name='TestValue'[\]]/value"
Value="[EMAIL_RECEIPIANT]" />
如果需要,可以创建自己的自定义对话框,让最终用户输入属性[BUILDRAN] && [EMAIL_RECEIPIANT]的值,也可以使用命令行并使用参数设置属性
msiexec /i My.msi BUILDRAN=SuperDebug [email protected]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句