Hi Pally,

I have considered CopyFile but didn't think it would satisfy our *quite
complicated* use case. Here's a bit more detail:

1- We want to deploy potentially hundreds of files to the Backups folder
(Currently we heat the directory to create the wxs file).
2- The Backups folder will potentially contain sub-folders.
3- We want to copy (by whatever means) the files and folder structure
from the Backups folder (the installed location) to a working folder.
4- Once in the working folder, the files are potentially user
modifiable.
5- On an uninstall of the product we want the copy of the files in the
working folder to be left alone (not uninstalled).
6- On an upgrade of the product we want the files and folders in the
Backups folder to be upgraded as normal, however the copy of the files
in the working folder should not be upgraded (to preserve any
modifications that the user has made).

We have a number of products that we want to manage in the same way so I
was hoping to write this once and use it again. This does mean that I
have to deal with different folder structures (below the Backups folder)
and different files names.

I'm quite new to WiX and couldn't see a way of making CopyFile copy over
the folder structure or deal with wildcards for file names. If there is
a way then that will probably satisfy the use case above.

Any suggestions would be gratefully received.

Thanks,
David




-----Original Message-----
From: Pally Sandher [mailto:pally.sand...@iesve.com] 
Sent: 07 July 2014 13:51
To: General discussion about the WiX toolset.
Subject: Re: [WiX-users] Error 1723 when calling CAQuiteExec to
xcopyconfig files

Why are you using xcopy at all? CopyFile is a thing which exists ->
http://wixtoolset.org/documentation/manual/v3/xsd/wix/copyfile.html

And then your files will be part of uninstall/rollback/upgrade etc
without any extra work.

Palbinder Sandher
Software Platform Engineer 
T:   +44 (0)141 945 8500
F:   +44 (0)141 945 8501
http://www.iesve.com 

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


-----Original Message-----
From: David Welton [mailto:david.wel...@uk.thalesgroup.com]
Sent: 07 July 2014 11:41
To: General discussion about the WiX toolset.
Subject: [WiX-users] Error 1723 when calling CAQuiteExec to xcopy config
files

Dear WiX users,

 

I am getting an "Error 1723. There is a problem with this Windows
Installer package. A DLL required for this install to complete could not
be run. Contact your support personnel or package vendor" when I try and
run a custom action to xcopy some config files during my installation.
Here is my fragment...

 

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";

     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension";>

  <Fragment>

 

    <Property Id="XCopyCustomAction" Value="1" />

    <!--echo n|xcopy src\* dst\* /e-->

 

    <CustomAction Id="SetCmdLineParams"

                  Property="QuietExecXCopy"

                  Value="&quot;[System64Folder]xcopy.exe&quot;
&quot;[INSTALLFOLDER]Backups\*&quot; &quot;[INSTALLFOLDER]*&quot; /E"

                  Execute="immediate" />

 

 

    <CustomAction Id="QuietExecXCopy"

                  BinaryKey="WixCA"

                  DllEntry="CAQuiteExec"

                  Execute="deferred"

                  Return="check"

                  Impersonate="yes"/>

 

    <InstallExecuteSequence>

      <Custom Action="SetCmdLineParams" After="CostFinalize"/>

      <Custom Action="QuietExecXCopy" After="InstallInitialize" />

    </InstallExecuteSequence>

    

  </Fragment>

</Wix>

 

I am building my msi with VS2010 using WiX 3.8 and have added a
reference to WixUtilExtension to the project.

 

I have tried various permutations of the Value property just to see if
it was a cmd line syntax issue but keep getting the same error when I
run the msi.

 

Looking in the log file

...

MSI (s) (18:14) [09:16:16:899]: Doing action: SetCmdLineParams

MSI (s) (18:14) [09:16:16:899]: Note: 1: 2205 2:  3: ActionText 

Action start 09:16:16: SetCmdLineParams.

MSI (s) (18:14) [09:16:16:899]: PROPERTY CHANGE: Adding QuietExecXCopy
property. Its value is '"C:\WINDOWS\system32\xcopy.exe" "C:\Program
Files (x86)\TestConfigChanges\Backups\*" "C:\Program Files
(x86)\TestConfigChanges\*" /E'.

Action ended 09:16:16: SetCmdLineParams. Return value 1.

...

MSI (s) (18:14) [09:16:17:180]: Executing op:
ActionStart(Name=QuietExecXCopy,,)

MSI (s) (18:14) [09:16:17:180]: Executing op:
CustomActionSchedule(Action=QuietExecXCopy,ActionType=3073,Source=Binary
Data,Target=CAQuiteExec,CustomActionData="C:\WINDOWS\system32\xcopy.exe"
"C:\Program Files (x86)\TestConfigChanges\Backups\*" "C:\Program Files
(x86)\TestConfigChanges\*" /E)

MSI (s) (18:FC) [09:16:17:196]: Invoking remote custom action. DLL:
C:\WINDOWS\Installer\MSI1B9.tmp, Entrypoint: CAQuiteExec

MSI (s) (18:74) [09:16:17:196]: Generating random cookie.

MSI (s) (18:74) [09:16:17:196]: Created Custom Action Server with PID
3044 (0xBE4).

MSI (s) (18:80) [09:16:17:211]: Running as a service.

MSI (s) (18:80) [09:16:17:211]: Hello, I'm your 32bit Elevated custom
action server.

MSI (s) (18:14) [09:16:17:227]: Note: 1: 1723 2: QuietExecXCopy 3:
CAQuiteExec 4: C:\WINDOWS\Installer\MSI1B9.tmp 

MSI (s) (18:14) [09:16:17:227]: Note: 1: 2205 2:  3: Error 

MSI (s) (18:14) [09:16:17:227]: Note: 1: 2228 2:  3: Error 4: SELECT
`Message` FROM `Error` WHERE `Error` = 1723 

MSI (c) (00:F0) [09:16:17:227]: Font created.  Charset: Req=0, Ret=0,
Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

 

MSI (s) (18:14) [09:16:25:795]: Note: 1: 2205 2:  3: Error 

MSI (s) (18:14) [09:16:25:795]: Note: 1: 2228 2:  3: Error 4: SELECT
`Message` FROM `Error` WHERE `Error` = 1709 

MSI (s) (18:14) [09:16:25:795]: Product: 1TestConfigChanges -- Error
1723. There is a problem with this Windows Installer package. A DLL
required for this install to complete could not be run. Contact your
support personnel or package vendor.  Action QuietExecXCopy, entry:
CAQuiteExec, library: C:\WINDOWS\Installer\MSI1B9.tmp

 

The property QuietExecXCopy seems to have a sensible value and it
certainly performs the desired action when I simply type it in to a cmd
prompt. Ultimately I'd like to call

echo n | xcopy src\* dst\* /E

so that I can copy without replacing during an upgrade, but one hurdle
at a time!

Can anyone offer any assistance?

 

Thanks in advance,

David

 

 

------------------------------------------------------------------------
------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community
Edition Quickly connect people, data, and systems into organized
workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------
------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community
Edition Quickly connect people, data, and systems into organized
workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to