SQL Server is likely being shut down by Restart Manager (via Windows
Installer's integration with Restart Manager). You would probably need to
disable MSI's use of RM.

-----Original Message-----
From: Nathan Zaugg [mailto:nza...@gmail.com] 
Sent: Thursday, June 03, 2010 11:12 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Detach Databases on Uninstall

In the log I can see that SQL Server is shut down on the
InstallValidate step.  I tried to put the custom action before that
step but I get the ICE error that it must be between InstallInitialize
and InstallFinalize.

Any suggestions on that?

                <InstallExecuteSequence>
        
<!--http://stackoverflow.com/questions/320921/how-to-add-a-wix-custom-action
-that-happens-only-on-uninstall-via-msi-->
                        <Custom Action="ExecuteSqlStrings"
Before="InstallValidate">
                                (NOT UPGRADINGPRODUCTCODE) AND
(REMOVE~="ALL")
                        </Custom>
                </InstallExecuteSequence>

Error   13      ICE77: ExecuteSqlStrings is a in-script custom action.  It
must be sequenced in between the InstallInitialize action and the
InstallFinalize action in the InstallExecuteSequence
table   C:\Projects\QCEW\IQDev0.2.2.4\Setup\Product.wxs 84      1



On Thu, Jun 3, 2010 at 9:11 AM, Pally Sandher <pally.sand...@iesve.com>
wrote:
> Condition it with "Installed" or something similar in that case (remember
to account/test for repair, modify & patching/upgrading where applicable to
your installer).
> e.g. <Custom Action="ExecuteSqlStrings"
After="InstallInitialize">Installed</Custom>
> Might need to add stuff like "AND NOT REINSTALL" if you don't want it to
run during repair/modify/patch/upgrade.
>
> As I said open the original MSI in InstEd!/Orca & see what Condition it
has already & then copy whatever the condition on it is to your code.
>
> MSDN page on sequence tables has some of that info in it ->
http://msdn.microsoft.com/en-us/library/aa372404(v=VS.85).aspx It's not
exhaustive as the examples don't have optional stuff like
RemoveExistingProducts listed.
> Best place to look I've found is the WiX documentation pages for the
Sequence Elements (e.g.
http://wix.sourceforge.net/manual-wix3/wix_xsd_installexecutesequence.htm)
however nowhere is going to list Custom Actions like ExecuteSqlStrings
anyway so opening your MSI in InstEd!/Orca & looking at the tables is
probably easier in this case.
>
> Palbinder Sandher
> Software Deployment & 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
>
> -----Original Message-----
> From: Nathan Zaugg [mailto:nza...@gmail.com]
> Sent: 03 June 2010 15:42
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Detach Databases on Uninstall
>
> Pally,
>
> That's close, but it doesn't work because it tries to run on install and I
need it to run on uninstall.  I knew it had to be some kind of
InstallExecuteSequence, I just wasn't sure of the to make it work with
uninstall.  By the way, is there a list of these actions and install steps
that I can reference?
>
> Thanks!
> Nate
>
> On Thu, Jun 3, 2010 at 5:52 AM, Pally Sandher <pally.sand...@iesve.com>
wrote:
>> Couldn't you just reschedule the ExecuteSqlStrings action by adding it to
the InstallExecuteSequence with the appropriate Before="" or After=""
attribute?
>>
>> That's how I worked around an issue with the SchedXMLConfig action before
it was modified to run after the DuplicateFiles action as it would error in
a pre-final build of WiX v3.0 if you tried to use XMLConfig on a CopyFile'd
file. Try something like:
>>
>>    <InstallExecuteSequence>
>>      <Custom Action="ExecuteSqlStrings" After="InstallInitialize" />
>>    </InstallExecuteSequence>
>>
>> You may want to pop your MSI open in InstEd!/Orca first to check the
InstallExecuteSequence & copy any Condition set on ExecuteSqlStrings into
your code.
>>
>> Palbinder Sandher
>> Software Deployment & 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
>>
>>
>> -----Original Message-----
>> From: dB. [mailto:dbl...@dblock.org]
>> Sent: 03 June 2010 12:13
>> To: General discussion for Windows Installer XML toolset.
>> Subject: Re: [WiX-users] Detach Databases on Uninstall
>>
>> There's a set of immediate custom actions in http://msiext.codeplex.com
that you can schedule at will. The one you want is ODBCExecute.
>>
>> There's also a whole stack of Wix extensions for ODBC generically and SQL
server specifically if you decide that what's included in Wix doesn't do it
for you.
>>
>> cheers
>> dB.
>>
>> dB. @ dblock.org
>> Moscow|Geneva|Seattle|New York
>>
>>
>> -----Original Message-----
>> From: Nathan Zaugg [mailto:nza...@gmail.com]
>> Sent: Wednesday, June 02, 2010 7:07 PM
>> To: General discussion for Windows Installer XML toolset.
>> Subject: Re: [WiX-users] Detach Databases on Uninstall
>>
>> I think I now have some insight.  The reason I can't connect is because
WIX detected that SQL Server was using a file that was included in the
installation and stopped SQL Server during the uninstall.
>>
>> Any idea how I coax it to running those scripts toward the beginning of
the uninstall?
>>
>>
>>
>> Action 17:02:12: ExecuteSqlStrings. Executing SQL Strings MSI (s) (F8:F4)
[17:02:12:349]: Executing op:
>> CustomActionSchedule(Action=ExecuteSqlStrings,ActionType=25601,Source=
>> BinaryData,Target=**********,CustomActionData=**********)
>> MSI (s) (F8:F4) [17:02:12:358]: Creating MSIHANDLE (44) of type 790536
for thread 5108 MSI (s) (F8:6C) [17:02:12:359]: Invoking remote custom
action. DLL:
>> C:\Windows\Installer\MSIC91F.tmp, Entrypoint: ExecuteSqlStrings MSI
>> (s) (F8!80) [17:02:29:356]: Creating MSIHANDLE (45) of type 790531 for
>> thread 1152
>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>> connect to database: master MSI (s) (F8!80) [17:02:29:356]: Closing
>> MSIHANDLE (45) of type 790531 for thread 1152 MSI (s) (F8!80)
>> [17:02:29:357]: Creating MSIHANDLE (46) of type 790531 for thread 1152
>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>> connect to database: master MSI (s) (F8!80) [17:02:29:357]: Closing
>> MSIHANDLE (46) of type 790531 for thread 1152 MSI (s) (F8!80)
>> [17:02:29:357]: Creating MSIHANDLE (47) of type 790531 for thread 1152
>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>> connect to database: master MSI (s) (F8!80) [17:02:29:358]: Closing
>> MSIHANDLE (47) of type 790531 for thread 1152 MSI (s) (F8!80)
>> [17:02:29:358]: Creating MSIHANDLE (48) of type 790531 for thread 1152
>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>> connect to database: master MSI (s) (F8!80) [17:02:29:358]: Closing
>> MSIHANDLE (48) of type 790531 for thread 1152 MSI (s) (F8!80)
>> [17:02:29:358]: Creating MSIHANDLE (49) of type 790531 for thread 1152
>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>> connect to database: master MSI (s) (F8!80) [17:02:29:359]: Closing
>> MSIHANDLE (49) of type 790531 for thread 1152 MSI (s) (F8!80)
>> [17:02:29:359]: Creating MSIHANDLE (50) of type 790531 for thread 1152
>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>> connect to database: master MSI (s) (F8!80) [17:02:29:359]: Closing
>> MSIHANDLE (50) of type 790531 for thread 1152 MSI (s) (F8:6C)
>> [17:02:29:363]: Closing MSIHANDLE (44) of type 790536 for thread 5108
>>
>>
>> On Tue, Jun 1, 2010 at 4:55 PM, Michael Osmond <mosm...@baytech.com.au>
wrote:
>>> Hi
>>>
>>> Another option to trace this is to use SQL Profiler - it should show the
calls being made and any errors occurring.
>>>
>>> By setting ContinueOnError="yes" any errors will be swallowed (they may
be in the log).  If you are doing this only to make the uninstall robust
against the database not existing, perhaps you should wrap the detach
process in a test of the database existing instead.
>>>
>>> Michael
>>>
>>>
>>> -----Original Message-----
>>> From: Pally Sandher [mailto:pally.sand...@iesve.com]
>>> Sent: Wednesday, 2 June 2010 4:12 AM
>>> To: General discussion for Windows Installer XML toolset.
>>> Subject: Re: [WiX-users] Detach Databases on Uninstall
>>>
>>> Try using "msiexec /i <msiname> /l*vx <logname>" to get verbose logs.
>>>
>>> I'm not sure on what info the WiX Standard Custom Actions like
SqlExtension put into the logs but those options should get everything &
might help point out where it's failing. For some reason I've got a feeling
there is some Property or variable you may need to set to get the Standard
Custom Actions to put more stuff into the logs, not 100% sure on that though
& I can't find any reference to it anywhere so I might be mixing it up with
something else. Hopefully if it does exist someone else will remember what
I'm rambling about & clarify.
>>>
>>> Palbinder Sandher
>>> Software Deployment & 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
>>>
>>> -----Original Message-----
>>> From: Nathan Zaugg [mailto:nza...@gmail.com]
>>> Sent: 28 May 2010 19:58
>>> To: wix-users@lists.sourceforge.net
>>> Subject: [WiX-users] Detach Databases on Uninstall
>>>
>>> I am trying to detach databases on uninstall.  I know the commands I
have work but for some reason this action fails.  We're using integrated
authentication and I wonder if that might be part of it.  I have also tried
running osql/sqlcmd as an install action.  It didn't work either and it
didn't give me anything interesting in the log.
>>>
>>> Any suggestions?  If I run these commands from a command line they work
fine.
>>>
>>> Thanks!
>>> Nate
>>>
>>> <sql:SqlDatabase Id="Master" Server="." Instance="SQLEXPRESS"
>>> Database="master" />
>>>
>>> <sql:SqlString Id="OfflineQCEW" ContinueOnError="yes"
>>> ExecuteOnUninstall="yes" SqlDb="Master" SQL="ALTER DATABASE QCEW.Deploy
SET OFFLINE WITH ROLLBACK IMMEDIATE" /> <sql:SqlString Id="DetachQCEW"
ContinueOnError="yes"
>>> ExecuteOnUninstall="yes" SqlDb="Master" SQL="EXEC
>>> master.dbo.sp_detach_db @dbname = N'[iQFolder]\QCEW.Deploy.MDF'"/>
>>>
>>> <!--Detach QCEWCommon-->
>>> <sql:SqlString Id="OfflineQCEWCommon" ContinueOnError="yes"
>>> ExecuteOnUninstall="yes" SqlDb="Master" SQL="ALTER DATABASE QCEWCommon
SET OFFLINE WITH ROLLBACK IMMEDIATE" /> <sql:SqlString Id="DetachQCEWCommon"
ContinueOnError="yes"
>>> ExecuteOnUninstall="yes" SqlDb="Master" SQL="EXEC
>>> master.dbo.sp_detach_db @dbname = N'[iQFolder]\QCEWCommon.MDF'"/>
>>>
>>> <!--Detach QCEWSecurity-->
>>> <sql:SqlString Id="OfflineQCEWSecurity" ContinueOnError="yes"
>>> ExecuteOnUninstall="yes" SqlDb="Master" SQL="ALTER DATABASE QCEWSecurity
SET OFFLINE WITH ROLLBACK IMMEDIATE" /> <sql:SqlString
Id="DetachQCEWSecurity" ContinueOnError="yes"
>>> ExecuteOnUninstall="yes"  SqlDb="Master" SQL="EXEC
>>> master.dbo.sp_detach_db @dbname = N'[iQFolder]\QCEWSECURITY.MDF'"/>
>>>
>>>
>>> Action 19:16:00: ExecuteSqlStrings. Executing SQL Strings
>>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>>> connect to database: master
>>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>>> connect to database: master
>>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>>> connect to database: master
>>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>>> connect to database: master
>>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>>> connect to database: master
>>> ExecuteSqlStrings:  Error 0x80004005: continuing after failure to
>>> connect to database: master
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> -
>>> --------
>>>
>>> _______________________________________________
>>> WiX-users mailing list
>>> WiX-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>>
>>> ---------------------------------------------------------------------
>>> -
>>> --------
>>>
>>> _______________________________________________
>>> WiX-users mailing list
>>> WiX-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>>
>>
>> ----------------------------------------------------------------------
>> -------- ThinkGeek and WIRED's GeekDad team up for the Ultimate
>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental
unit.  See the prize list and enter to win:
>> http://p.sf.net/sfu/thinkgeek-promo
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>> ----------------------------------------------------------------------
>> -------- ThinkGeek and WIRED's GeekDad team up for the Ultimate
>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental
unit.  See the prize list and enter to win:
>> http://p.sf.net/sfu/thinkgeek-promo
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>>
>>
>> ----------------------------------------------------------------------
>> -------- ThinkGeek and WIRED's GeekDad team up for the Ultimate
>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental
>> unit.  See the prize list and enter to win:
>> http://p.sf.net/sfu/thinkgeek-promo
>> _______________________________________________
>> WiX-users mailing list
>> WiX-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>
>
----------------------------------------------------------------------------
--
> ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's
Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit.  See the prize
list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
>
>
----------------------------------------------------------------------------
--
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit.  See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>

----------------------------------------------------------------------------
--
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to