[wix-users] Mysterious behavior in MSI

Habib Salim habib at hsalim.com
Wed Nov 6 22:14:48 PST 2019


As it often happens, I was barking up the wrong tree.

I had made a copy of my WiX project when I started making these changes but
did not update the path the CustimActions CA.dll file – it was still
pointing to the previous location.



The database creation is an optional feature and can be skipped (if the
admin would prefer to do it manually)

I’ll raise your points in our next dev meeting and try to find a different
way to look at this.



Thanks for your help with this.



Regards

Habib



*From:* Edwin Castro <egcastr at gmail.com>
*Sent:* Thursday, November 07, 2019 12:39 AM
*To:* WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
*Cc:* Habib Salim <habib at hsalim.com>
*Subject:* Re: [wix-users] Mysterious behavior in MSI



Custom actions are located in the Binary table. I think managed custom
action dlls are embedded in native custom action dlls.



What do you mean by archive? What creates the archive?



What do you mean by start a new MSI from scratch?



Does the target database already exist when you install the MSI?



I suspect the database already exists with the all the tables and when you
install a new MSI it is not really creating anything new. What happens if
you add a column and remove a column from the same table?



If the MSI only creates databases, then why use MSI? How do you handle
upgrades? Do you install the MSI on the server hosting the database or are
you installing on a remote server, then what ensures the database upgrade
occurrs on the correct server? Again, I generally discourage databases to
be created/updated with MSI. In my opinion, MSIs should not install remote
resources and most database admins disallow direct access to database
servers.

On Wed, Nov 6, 2019, 20:49 Habib Salim via wix-users <
wix-users at lists.wixtoolset.org> wrote:

Thanks for the response.



I have Orca and InstEdIt! But I can’t tell where my customActions dll is
located.

WinRAR shows the dlls inside the archive but nothing else – not my dll or
anything that would represent the installer tables/instructions.



This MSI only creates new databases.  all objects are only created, and a
few inserts of “setup” type data.



I’ve used the install logs to troubleshoot installs but I did not because
it might not be traceable there.

I do think that maybe an older copy of my dll stuffed is hiding in the
MSI.

https://docs.microsoft.com/en-us/windows/win32/msi/reducing-the-size-of-an--msi-file



is there a way to start a new MSI from scratch? A commandline switch?



Regards

Habib







*From:* Edwin Castro <egcastr at gmail.com>
*Sent:* Wednesday, November 06, 2019 10:50 AM
*To:* WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
*Cc:* Habib Salim <habib at hsalim.com>
*Subject:* Re: [wix-users] Mysterious behavior in MSI



I am afraid that is not enough information to figure out what is going on.
Perhaps the old custom action DLL is still, somehow, used in your MSI. Are
you creating the database from scratch? Perhaps you are updating the
database and you don't have code to drop those tables.



Have you used Orca or Instedit to check the DLL that is actually embedded
in your MSI? Are you logging the actions taken? Such a log could let you
confirm that the tables are or are not getting created with the new
MSI/DLL. You could even log the entire XML content you are processing. That
could be a lot to log but it would let you verify that you are using the
content you intend to use. Are you starting with an empty database in your
testing?



--

Edwin G. Castro

On Wed, Nov 6, 2019, 06:48 Habib Salim via wix-users <
wix-users at lists.wixtoolset.org> wrote:

Hello,

I have a custom action in my msi that creates a database with tables and
other SQL objects.  Object definitions are in an xml file, which is
packaged into the project as an embedded resource.

This has been working beautifully for some time now.



I recently changed the XML  - dropped a few tables for example, by editing
the XML.  I’ve looked it every way I can – I even opened the dll in
Resharper and verified that the XML does not contain those tables.

Still, when I run the installer, the tables are created - I just cant
figure out why.



Thanks in advance for any assistance.

Regards

Habib

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/



More information about the wix-users mailing list