Re: [WiX-users] string replacement in xml files
I do something quite similar as well. We use nant for our builds, and in the build file I set an environment variable, then use it in the wix file. Src="" I wasnt able to use the var. for some reason I had to set the variable to an environment variable before I could access it. So in the build file I have: setenv variable name=INSTALLATION value=${Installation} / /setenv Then in the wxs file I have: Component Id=ComponentID DiskId=1 Guid=guid File Id=fileid Name=short_1.DLL LongName=filename.dll src="" ReadOnly=no / /Component From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Crouch, John Sent: Thursday, September 14, 2006 1:20 AM To: wix-users@lists.sourceforge.net Cc: Simon Burgess Subject: Re: [WiX-users] string replacement in xml files Simon, I have a very similar issue for an enterprise deployment next year. I am currently using an .ini file which keeps all data for all the deployment locations by computer name (which I know in advance). [NY-SRV-01] This-web-config=127.0.0.1 This-exe-config=127.0.0.2 [SF-SRV-02] This-web-config=721.0.0.1 This-exe-config=721.0.0.2 Then in my WiX generated msi I Look into the registry for the computer name assign that to a value Look up the computer name matching the previous value in my *.ini file Read off the values that this particular msi requires. Use XMLFile to update the key values in my web and app config files. Works fine, however, I am open to any suggestions to improve it. Kind regards, National Oilwell Varco John Crouch Software Engineer/Developer National Oilwell Norway AS Phone:+4751818181 Fax:+4751800547 [EMAIL PROTECTED] www.nov.com This message, including any attachments, is intended only for the addressee and may contain privileged or confidential information. Any unauthorized disclosure is strictly prohibited. If you receive this message in error, please notify us immediately so that we may correct our internal records. Please then delete the original message. Thank you. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Simon Burgess Sent: Wednesday, September 13, 2006 10:48 PM To: 'WiX-users' Subject: [WiX-users] string replacement in xml files I am looking into different ways to handle environment specific information in web.config files. It would seem logical if at deployment time, my installer could determine where it is being run and update a generic config file so that is fit for purpose for the environment it is being run on. I wouldnt need to create new elements exactly but just search for partular tokens within an xml file and replace them with a value I read in from the registry for example. The following is some sample xml from a config file: endpoint address=http://localhost/Configuration/ConfigurationService.svc binding=basicHttpBinding bindingConfiguration=BasicHttpBinding_IConfigurationService contract=Exchange.EnterpriseLibrary.Configuration.IConfigurationService name=BasicHttpBinding_IConfigurationService/ I would need to replace localhost with something more appropriate. Is this something the XMLFile element could handle or is there something else in WiX that could help out? - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] string replacement in xml files
Thanks John thats good to know someone out there is going through the same thing ;-) Could I possibly get a peek at your WiX source that would replace a value within some XML as all I can see from the help is how to create a new element From: Crouch, John [mailto:[EMAIL PROTECTED] Sent: 14 September 2006 06:20 To: wix-users@lists.sourceforge.net Cc: Simon Burgess Subject: RE: [WiX-users] string replacement in xml files Simon, I have a very similar issue for an enterprise deployment next year. I am currently using an .ini file which keeps all data for all the deployment locations by computer name (which I know in advance). [NY-SRV-01] This-web-config=127.0.0.1 This-exe-config=127.0.0.2 [SF-SRV-02] This-web-config=721.0.0.1 This-exe-config=721.0.0.2 Then in my WiX generated msi I Look into the registry for the computer name assign that to a value Look up the computer name matching the previous value in my *.ini file Read off the values that this particular msi requires. Use XMLFile to update the key values in my web and app config files. Works fine, however, I am open to any suggestions to improve it. Kind regards, National Oilwell Varco John Crouch Software Engineer/Developer National Oilwell Norway AS Phone:+4751818181 Fax:+4751800547 [EMAIL PROTECTED] www.nov.com This message, including any attachments, is intended only for the addressee and may contain privileged or confidential information. Any unauthorized disclosure is strictly prohibited. If you receive this message in error, please notify us immediately so that we may correct our internal records. Please then delete the original message. Thank you. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Simon Burgess Sent: Wednesday, September 13, 2006 10:48 PM To: 'WiX-users' Subject: [WiX-users] string replacement in xml files I am looking into different ways to handle environment specific information in web.config files. It would seem logical if at deployment time, my installer could determine where it is being run and update a generic config file so that is fit for purpose for the environment it is being run on. I wouldnt need to create new elements exactly but just search for partular tokens within an xml file and replace them with a value I read in from the registry for example. The following is some sample xml from a config file: endpoint address=http://localhost/Configuration/ConfigurationService.svc binding=basicHttpBinding bindingConfiguration=BasicHttpBinding_IConfigurationService contract=Exchange.EnterpriseLibrary.Configuration.IConfigurationService name=BasicHttpBinding_IConfigurationService/ I would need to replace localhost with something more appropriate. Is this something the XMLFile element could handle or is there something else in WiX that could help out? - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] string replacement in xml files
Simon, Here is my test app using the Foobar files from a tutorial plus a deployed App.Config file (could've used a web.config or *.exe.config). Fairly self explanatory - I hope. SampleRegistry.ini reads [COMPUTER_NAME1] AnyOldKeyNameIChooseForMyIniFile=AnyOldValue [COMPUTER_NAME2] AnyOldKeyNameIChooseForMyIniFile=DifferentOldValue . . . and so on. ?xml version='1.0' encoding='windows-1252'? Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi' Product Name='Foobar 1.0' Id='{A0B7E37C-46D9-4c41-B79C-85841092C448}' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.' UpgradeCode='{6988A5C7-9C2A-4fb8-B6A7-3E0003A78317}' Package Id='{AEB90E9D-5E24-4aec-9ED4-CFB0511CCFC0}' Keywords='Installer' Description=Acme's Foobar 1.0 Installer Comments='Foobar is a registered trademark of Acme Ltd.' Manufacturer='Acme Ltd.' InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' / !--This looks into the localcomputer registry to find the computer name-- Property Id=MYCOMPUTER_NAME RegistrySearch Id=TestRegistrySearch Type=raw Root=HKLM Key=System\CurrentControlSet\Control\ComputerName\ComputerName Name='ComputerName' / /Property !--This looks into the SampleRegistry.ini in WINDOWS directory for a given computer name section-- Property Id=MY_APP_CONFIG_VALUE IniFileSearch Id='TestIniFile' Type='raw' Name='Sample.ini' LongName='SampleRegistry.ini' Section=[MYCOMPUTER_NAME] Key='AnyOldKeyNameIChooseForMyIniFile' Field='1' / /Property Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt=CD-ROM #1 / Property Id='DiskPrompt' Value=Acme's Foobar 1.0 Installation [1] / Directory Id='TARGETDIR' Name='SourceDir' Directory Id='ProgramFilesFolder' Name='PFiles' Directory Id='Acme' Name='Acme' Directory Id='INSTALLDIR' Name='Foobar10' LongName='Foobar 1.0' Component Id='MainExecutable' Guid='{8CD20A89-46D4-4e56-A5D3-41A23DD621CF}' File Id='FoobarEXE' Name='Foobar10.exe' LongName='FoobarAppl10.exe' DiskId='1' Source='FoobarAppl10.exe' Vital='yes' Shortcut Id=startmenuFoobar10 Directory=ProgramMenuDir Name=Foobar10 LongName=Foobar 1.0 WorkingDirectory='INSTALLDIR' Icon=Foobar10.exe IconIndex=0 / Shortcut Id=desktopFoobar10 Directory=DesktopFolder Name=Foobar10 LongName=Foobar 1.0 WorkingDirectory='INSTALLDIR' Icon=Foobar10.exe IconIndex=0 / /File /Component Component Id='HelperLibrary' Guid='{3E12C7ED-0A24-41a3-AE18-8524074F154F}' File Id='HelperDLL' Name='Helper.dll' DiskId='1' Source='Helper.dll' Vital='yes' / /Component Component Id='Manual' Guid='{FCA73FF6-FC0F-426a-A165-5CB042C31B3B}' File Id='Manual' Name='Manual.pdf' DiskId='1' Source='Manual.pdf' Shortcut Id=startmenuManual Directory=ProgramMenuDir Name=Manual LongName=Instruction Manual / /File /Component Component Id='App_Config' Guid='{BBA431E9-51DB-49a5-827E-0FD1EAF17C05}' File Id='App_Config' Name='App.cfg' LongName='App.Config' DiskId='1' Source='App.Config' Vital='yes' /File XmlFile Id='AppCongifSettings' File='[INSTALLDIR]App.Config' Action='setValue' Value=[MY_APP_CONFIG_VALUE] ElementPath=/configuration/appSettings/[EMAIL PROTECTED]'AppConfigKeyName'[\]]/@value / /Component /Directory /Directory /Directory Directory Id=ProgramMenuFolder Name=PMenu LongName=Programs Directory Id=ProgramMenuDir Name='Foobar10' LongName=Foobar 1.0 / /Directory Directory Id=DesktopFolder Name=Desktop / /Directory Feature Id='Complete' Level='1' ComponentRef Id='MainExecutable' / ComponentRef Id='HelperLibrary' / ComponentRef Id='Manual' / ComponentRef Id='App_Config' / /Feature Icon Id=Foobar10.exe SourceFile=FoobarAppl10.exe / /Product /Wix Kind regards, National Oilwell Varco John Crouch Software Engineer/Developer National Oilwell Norway AS Phone: +4751818181 Fax: +4751800547 [EMAIL PROTECTED] www.nov.com This message, including any attachments, is intended only for the addressee and may contain privileged or confidential information. Any unauthorized disclosure is strictly prohibited. If you receive this message in error, please notify us immediately so that we may correct our internal records. Please then delete the original message. Thank you. From: Simon Burgess [mailto:[EMAIL PROTECTED] Sent: Thursday, September 14, 2006 2:16 PM To: Crouch, John; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] string replacement in xml files Thanks John that's good to know someone out there is going through the same thing
[WiX-users] string replacement in xml files
I am looking into different ways to handle environment specific information in web.config files. It would seem logical if at deployment time, my installer could determine where it is being run and update a generic config file so that is fit for purpose for the environment it is being run on. I wouldnt need to create new elements exactly but just search for partular tokens within an xml file and replace them with a value I read in from the registry for example. The following is some sample xml from a config file: endpoint address=http://localhost/Configuration/ConfigurationService.svc binding=basicHttpBinding bindingConfiguration=BasicHttpBinding_IConfigurationService contract=Exchange.EnterpriseLibrary.Configuration.IConfigurationService name=BasicHttpBinding_IConfigurationService/ I would need to replace localhost with something more appropriate. Is this something the XMLFile element could handle or is there something else in WiX that could help out? - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] string replacement in xml files
Simon, I have a very similar issue for an enterprise deployment next year. I am currently using an .ini file which keeps all data for all the deployment locations by computer name (which I know in advance). [NY-SRV-01] This-web-config=127.0.0.1 This-exe-config=127.0.0.2 [SF-SRV-02] This-web-config=721.0.0.1 This-exe-config=721.0.0.2 Then in my WiX generated msi I Look into the registry for the computer name assign that to a value Look up the computer name matching the previous value in my *.ini file Read off the values that this particular msi requires. Use XMLFile to update the key values in my web and app config files. Works fine, however, I am open to any suggestions to improve it. Kind regards, National Oilwell Varco John Crouch Software Engineer/Developer National Oilwell Norway AS Phone:+4751818181 Fax:+4751800547 [EMAIL PROTECTED] www.nov.com This message, including any attachments, is intended only for the addressee and may contain privileged or confidential information. Any unauthorized disclosure is strictly prohibited. If you receive this message in error, please notify us immediately so that we may correct our internal records. Please then delete the original message. Thank you. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Simon Burgess Sent: Wednesday, September 13, 2006 10:48 PM To: 'WiX-users' Subject: [WiX-users] string replacement in xml files I am looking into different ways to handle environment specific information in web.config files. It would seem logical if at deployment time, my installer could determine where it is being run and update a generic config file so that is fit for purpose for the environment it is being run on. I wouldnt need to create new elements exactly but just search for partular tokens within an xml file and replace them with a value I read in from the registry for example. The following is some sample xml from a config file: endpoint address=http://localhost/Configuration/ConfigurationService.svc binding=basicHttpBinding bindingConfiguration=BasicHttpBinding_IConfigurationService contract=Exchange.EnterpriseLibrary.Configuration.IConfigurationService name=BasicHttpBinding_IConfigurationService/ I would need to replace localhost with something more appropriate. Is this something the XMLFile element could handle or is there something else in WiX that could help out? - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users