I think the problem here is that there is no corresponding "uninstall" action 
for an operation like the following:

<util:XmlConfig Id="AddElementText"
                File="[SOMEEXISTINGFILE]"
                Action="create"
                ElementPath="/someElement"
                Node="value"
                Value="NEW TEXT"
                On="install"
                Sequence="1" />

(Sample text for SOMEEXISTINGFILE:)

<?xml version="1.0" encoding="utf-8"?>
<someElement>ORIGINAL TEXT, THIS COULD BE ANYTHING</someElement>

I do see that rollback works in the case of a problem during installation (I 
just tested it and it reverted to the original file).  Uninstall seems 
trickier, and I can't think of a way to do this without resorting to a 
user-defined custom action (e.g. backing up the file before changing it and 
restoring it on uninstall).

######################################
$_='^#(/||/@[EMAIL PROTECTED]@:^[-['^";@@@\\>])@.".
"{)/];)^{";$,+=(++$,);$_.=">&$,";`$_`;


-----Original Message-----
From: Rob Mensching [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 22, 2008 10:09 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Bug in x64 build of WiX UtilExtension?

XmlConfig *can* edit existing XML files and on rollback it reverts any changes 
it makes.  XmlFile does not have those capabilities.

-----Original Message-----
From: Brian Rogers [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 22, 2008 09:42
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Bug in x64 build of WiX UtilExtension?

Hmm, I guess there is no straightforward way to edit existing values in an XML 
file with XmlConfig.  As you mention, if it were possible, it would make it 
hard to rollback changes if something goes wrong (it would somehow have to read 
and store the original value so it could be reverted later).

I guess you'll have to use XmlFile if you want to do that.  I don't think 
you'll be able to rollback/uninstall the change unless you write a custom 
action doing what I describe above (reading the original value and saving it 
off somewhere).

That WOW64 message is not an error.  From the WiX source code:

        // If we fail, log the error but proceed, because we may not need a 
particular function, or the Wow64 API at all
        if (!s_pfnDisableWow64)
        {
            WcaLog(LOGMSG_STANDARD, "Found Wow64 API, but unable to link to 
Wow64DisableWow64FsRedirection function in kernel32.dll");
        }

XmlConfig cannot vary due to any .NET Framework version because it is a C++ 
custom action with no .NET dependencies.

######################################
$_='^#(/||/@[EMAIL PROTECTED]@:^[-['^";@@@\\>])@.".
"{)/];)^{";$,+=(++$,);$_.=">&$,";`$_`;


-----Original Message-----
From: Joel Paula (hotmail) [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 22, 2008 9:27 AM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Bug in x64 build of WiX UtilExtension?

Brian,

XmlConfig only allows for adding or deleting elements.
I understand this is more straightforward when you want to rollback.

How do you "edit" an XML file?
XmlFile seemed to be the thing to use, but it always throws the error " 
ExecXmlFile:  Found Wow64 API, but unable to link to 
Wow64DisableWow64FsRedirection function in kernel32.dll", no matter what I try 
to feed it.
Is it a bug and should we file a bug, or are we doing something wrong?

By the way, the example you give produces a "value" attribute on the 
"/IESInterface/IESveLocation" node when I build and run it. Is there anything 
that may influence how it works, depending on the machine or the .Net framework 
version?
I had to use something like:
<util:XmlConfig Id="AddVELocation"
        File="[#IESveInterfaceParameters.xml]"
        Action="create"
        ElementPath="/IESInterface "
        Name="IESveLocation"
        Node="element"
        Value="[VE59LOCATION]apps"/>

Thanks for your help.

Joel Paula


-----Original Message-----
From: Brian Rogers [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 22, 2008 4:47 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Bug in x64 build of WiX UtilExtension?

I'd recommend using XmlConfig instead of XmlFile.  The following should achieve 
what you want:

<util:XmlConfig Id="updateVELocation"
                File="[#IESveInterfaceParameters.xml]"
                Action="create"
                On="install"
                ElementPath="/IESInterface/IESveLocation"
                Node="value"
                Value="[VE59LOCATION]apps" />

This blog post has some more examples of using XmlConfig: 
http://blogs.msdn.com/gisenberg/archive/2007/10/09/wix-v3-and-xmlconfig-xmlfile-troubleshooting.aspx


######################################
$_='^#(/||/@[EMAIL PROTECTED]@:^[-['^";@@@\\>])@.".
"{)/];)^{";$,+=(++$,);$_.=">&$,";`$_`;


-----Original Message-----
From: Pally Sandher [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 22, 2008 6:12 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Bug in x64 build of WiX UtilExtension?

I'm trying to use util:XMLFile to modify the inner text of a tag in an XML file 
during installation which is installed by my MSI for one of our plug-ins.

The XML file is named IESveInterfaceParameters.xml and contains the following 
code:

<?xml version='1.0'?>
<IESInterface>
  <IESveLocation>M:\IES\apps </IESveLocation>
  <OutputveXMLLocation> </OutputveXMLLocation>
  <Preferences city='Boulder (CO)' latitude='40.017' minimumFloorArea='0.0' 
buildingAreaType='Office' thinWalls='1' 
buildingRoomService='VariableRefrigerantFlow' 
verticalHorizontalElementTransitionAngle='45.0' 
adjacencySeparationDistance='0.91441111923921' longitude='-105.283' 
diagnosticAids='no' minimumRoomHeight='0.0'/>
</IESInterface>

My installer code is as follows:

<Component Id="Dialogs" DiskId="1" Guid="myguid">
...
  <File Id="IESveInterfaceParameters.xml" Name="IESveInterfaceParameters.xml" 
Source="..\..\..\code\Sketchup\Plugins\IESLink\Dialogs\IESveInterfaceParameters.xml"
 />
...
  <util:XmlFile Id="updateVELocation" Action="setValue" 
File="[#IESveInterfaceParameters.xml]" Value="[VE59LOCATION]apps" 
ElementPath="/IESInterface/IESveLocation" SelectionLanguage="XPath" />
</Component>


All the above code is supposed to do is replace the inner text of the 
<IESveLocation> tag. Unfortunately the documentation for util:XMLFile leaves a 
lot to be desired so it doesn't work as yet (back to good old trial & error 
again). Any help would be appreciated however this isn't what I'm referring to 
as a bug.

The machine that I use to build my MSIs runs XP64. I install the Wix3_x64.msi 
package when updating my WiX compiler (currently using v3.0.4617.0). When I 
build my MSI in Visual Studio it is set to build as x86 & checking it in Orca 
shows the Platform set to "Intel".

If I attempt to install it on an XP64 Virtual Machine I get the following in 
the log:

Action 12:08:28: ExecXmlFile.
MSI (s) (40:C4) [12:08:28:138]: Executing op: 
CustomActionSchedule(Action=ExecXmlFile,ActionType=3073,Source=BinaryData,Target=ExecXmlFile,CustomActionData=1€1€C:\Program
 Files (x86)\Google\Google SketchUp 
6\Plugins\IESLink\Dialogs\IESveInterfaceParameters.xml€3€/IESInterface/IESveLocation€€C:\Program
 Files (x86)\IES\VE 59\)
MSI (s) (40:C4) [12:08:28:138]: Creating MSIHANDLE (10) of type 790536 for 
thread 1988
MSI (s) (40:C0) [12:08:28:138]: Invoking remote custom action. DLL: 
C:\WINDOWS\Installer\MSI4.tmp, Entrypoint: ExecXmlFile
MSI (s) (40:C0) [12:08:28:169]: Generating random cookie.
MSI (s) (40:C0) [12:08:28:169]: Created Custom Action Server with PID 1464 
(0x5B8).
MSI (s) (40:A8) [12:08:28:216]: Running as a service.
MSI (s) (40:A8) [12:08:28:216]: Hello, I'm your 32bit Elevated custom action 
server.
MSI (s) (40:C0) [12:08:28:497]: Closing MSIHANDLE (10) of type 790536 for 
thread 1988
Action ended 12:08:28: InstallFinalize. Return value 3.

It then does a rollback & throws up the FatalError dialog. I'm guessing this is 
because my code is incorrect however when I attempt to install the same MSI on 
an XP32 Virtual Machine I get the following in the log:

Action 12:09:11: ExecXmlFile.
MSI (s) (94:10) [12:09:11:325]: Executing op: 
CustomActionSchedule(Action=ExecXmlFile,ActionType=3073,Source=BinaryData,Target=ExecXmlFile,CustomActionData=1€1€C:\Program
 Files\Google\Google SketchUp 
6\Plugins\IESLink\Dialogs\IESveInterfaceParameters.xml€3€/IESInterface/IESveLocation€€C:\Program
 Files\IES\VE 59\)
MSI (s) (94:10) [12:09:11:340]: Creating MSIHANDLE (10) of type 790536 for 
thread 1296
MSI (s) (94:38) [12:09:11:340]: Invoking remote custom action. DLL: 
C:\WINDOWS\Installer\MSI4.tmp, Entrypoint: ExecXmlFile
MSI (s) (94:A0) [12:09:11:340]: Generating random cookie.
MSI (s) (94:A0) [12:09:11:356]: Created Custom Action Server with PID 532 
(0x214).
MSI (s) (94:BC) [12:09:11:418]: Running as a service.
MSI (s) (94:BC) [12:09:11:418]: Hello, I'm your 32bit Elevated custom action 
server.
MSI (s) (94!88) [12:09:13:637]: Creating MSIHANDLE (11) of type 790531 for 
thread 648
ExecXmlFile:  Found Wow64 API, but unable to link to 
Wow64DisableWow64FsRedirection function in kernel32.dll
MSI (s) (94!88) [12:09:13:653]: Closing MSIHANDLE (11) of type 790531 for 
thread 648
MSI (s) (94!88) [12:09:13:653]: Creating MSIHANDLE (12) of type 790531 for 
thread 648
ExecXmlFile:  Found Wow64 API, but unable to link to 
Wow64RevertWow64FsRedirection function in kernel32.dll
MSI (s) (94!88) [12:09:13:653]: Closing MSIHANDLE (12) of type 790531 for 
thread 648
MSI (s) (94:38) [12:09:13:715]: Closing MSIHANDLE (10) of type 790536 for 
thread 1296
Action ended 12:09:13: InstallFinalize. Return value 3.

Why any mention of the WoW64 API exists when running on 32-bit XP is bizarre. 
Hence I reckon it's a bug. I haven't tried installing the non-x64 WiX MSI as 
yet but while I do, if anyone could confirm or deny this as being a bug before 
I report it on the SourceForge tracker it would be a great help.

Cheers,


Palbinder Sandher
Software Deployment and IT Administrator

T: +44 (0) 141 945 8500
F: +44 (0) 141 945 8501
http://www.iesve.com

**Design, Simulate + Innovate with the <Virtual Environment>**

Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456
Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 
0SP

Email Disclaimer

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to