From: <jpi...@po...> - 2004-08-13 07:42:42
|
Hello After working with WiX for over a week, I hit a wall - what defeated me i= s not complexity or lack of ideas how to do given thing, but details in cod= e. Should work, but doesn't, and I have no idea why. I) First problem lies in enviroment variables. I want to overwrite everyt= hing during reinstall - it works correctly when I set variables from comman= d line ("/famus"), but it doesn't work when I'm doing it internally. I set = values, I even set in in system, so I can observe them through "regedit32.e= xe", but it doesn't seems to affect program any. I already tried many combi= nation of parameters, setting only "REINSTALLMODE" etc. Nothing seems to wo= rk. By the way - there is one more something strange thing too: Installer doe= sn't seem to notice any missing/modified files, unless it's first file in a= list. II) Second problem is SOURCEDIR property. From *.msi documentation I know= , that it should point on directory where *.msi file currently being execut= ed is stored. No such luck - when I tried to use is, best I got is "cannot = open network location" message. III) Custom action executing a file. What I'm doing wrong? File exist, ac= tion exist, and is in set sequence list - and I'm getting message, that Win= dow Installer couldn't execute a file. IV) Any ideas how to search *.ini file that is outside windows directory?= I tried to simple copy it here, but installer is checking properties first= and copying files second. Is there a way to "refresh" property value? Could you please answer with fragments of code? It's details, that I have= problem with, I'm probably making some obvious mistakes, but I myself seem= s to be unable to catch them. Speaking about it, is there any good way to f= ind reasons behing such non-working section of code? I'm already using "orc= a.exe" validating fuctions and "dark.exe" to debug changes made in Orca to = see how it applies in WiX. OK, here is complete, exemplary not-exactly-working fragment of code I'm = working on: <?xml version=3D"1.0" encoding=3D"utf-8"?> <Wix xmlns=3D"http://schemas.microsoft.com/wix/2003/01/wi"> <Product Name=3D"!example" Language=3D"1033" Id=3D"4AA22F5D-D457-4A58-99FB-56AFF7FFD2CC" Manufacturer=3D"me" Version=3D"1.0.0"> <Package Id=3D"6697CCC3-B351-4DCE-820E-DEAC87F57A2A"=20 Keywords=3D"Installer,MSI,Database" Description=3D"example" Comments=3D"none" Manufacturer=3D"ja" InstallerVersion=3D"200" Languages=3D"1033" Compressed=3D"yes" SummaryCodepage=3D"1252" /> <Property Id=3D"INIVALUE"> <IniFileSearch Id=3D"IniSearch" File=3D"ini2.ini" Type=3D"registry" Section=3D"General" Key=3D"Build" /> </Property> <Property Id=3D"INIPATH_SRC" Value=3D"SOURCEDIR" /> <Property Id=3D"INIPATH_DES" Value=3D"c:\2\" /> <Property Id=3D"TEST_EXE" Value=3D"c:\2\" /> <Media Id=3D"1" EmbedCab=3D"yes" Cabinet=3D"Examp.cab"/> <Directory Id=3D"TARGETDIR" Name=3D"SourceDir"> <Directory Id=3D"ProgramFilesFolder" Name=3D"PFiles"> <Directory Id=3D"INSTALLDIR" Name=3D"exampl" LongName=3D"Example Pr= ogram"> <Component Id=3D"CoreFiles" Guid=3D"B081FEDE-736F-541C-26EA-BA101= 5D31B37"> <!--...--> <File Id=3D"ini_file1" Name=3D"ini1.ini" src=3D"ini1.ini" DiskI= d=3D"1" /> <File Id=3D"ini_file2" Name=3D"ini2.ini" LongName=3D"ini2.ini" = src=3D"ini2.ini" DiskId=3D"1" /> <IniFile Id=3D"inifilechange" Action=3D"addTag" Name=3D"ini1.in= i" Directory=3D"INSTALLDIR" Key=3D"BuildNumer" Value=3D"[INIVALUE]" Section= =3D"Build" /> <Environment Id=3D"TestEnvironment1" Action=3D"set" Name=3D"REINSTALL" Part=3D"last" System=3D"yes" Value=3D"ALL"/> <Environment Id=3D"TestEnvironment2" Action=3D"set" Name=3D"REINSTALLMODE" Part=3D"last" System=3D"yes" Value=3D"amus"/> <CopyFile Id=3D"copy_ini" Delete=3D"yes" SourceProperty=3D"INIPATH_SRC" DestinationProperty=3D"INIPATH_DES" SourceName=3D"APSys.ini" DestinationName=3D"APSys.ini" DestinationLongName=3D"APSys.ini"/> </Component> </Directory> </Directory> <Directory Id=3D"WindowsFolder" Name=3D"." SourceName=3D"Windows"> <Component Id=3D"IniFile" Guid=3D"B281CEDE-746F-591C-22EA-BAD015D31= B37"> <File Id=3D"ini_interbuild" Name=3D"ini2.ini" LongName=3D"ini2.in= i" src=3D"ini2.ini" DiskId=3D"1" /> </Component> </Directory> </Directory> <Feature Id=3D"DefaultFeature" Level=3D"1"> <ComponentRef Id=3D"CoreFiles"/> <ComponentRef Id=3D"IniFile"/> </Feature> <CustomAction Id=3D"CopyIni" Property=3D"TEST_EXE" ExeCommand=3D"databa= se.exe" /> <UI> <AdminUISequence> </AdminUISequence> <InstallUISequence> </InstallUISequence> </UI> <AdminExecuteSequence /> <InstallExecuteSequence> <Custom Action=3D"CopyIni" Before=3D"InstallFinalize" /> <MoveFiles Sequence=3D"1550" Suppress=3D"no" /> <RemoveFiles Sequence=3D"1525" Suppress=3D"no" /> <RemoveExistingProducts After=3D"InstallFinalize" /> </InstallExecuteSequence> <CustomTable Id=3D"MoveFile"> <Column Id=3D"FileKey" Type=3D"string" Width=3D"72" PrimaryKey=3D"yes= " /> <Column Id=3D"Component_" Type=3D"string" Width=3D"72" /> <Column Id=3D"SourceName" Nullable=3D"yes" Localizable=3D"yes" Type= =3D"string" Width=3D"255" /> <Column Id=3D"DestName" Nullable=3D"yes" Localizable=3D"yes" Type=3D"= string" Width=3D"255" /> <Column Id=3D"SourceFolder" Nullable=3D"yes" Type=3D"string" Width=3D= "72" /> <Column Id=3D"DestFolder" Type=3D"string" Width=3D"72" /> <Column Id=3D"Options" Type=3D"int" Width=3D"2" /> <Row> <Data Column=3D"FileKey"><![CDATA[Abcd]]></Data> <Data Column=3D"Component_"><![CDATA[IniFile]]></Data> <Data Column=3D"SourceName" /> <Data Column=3D"DestName" /> <Data Column=3D"SourceFolder"><![CDATA[INIPATH_SRC]]></Data> <Data Column=3D"DestFolder"><![CDATA[INIPATH_DES]]></Data> <Data Column=3D"Options"><![CDATA[1]]></Data> </Row> </CustomTable> </Product> </Wix> Thank you. Jakub Pilecki jpi...@po... |