MMsiBreak worked... Thanks

Also for some reason having my PDB in the compilation folder was not enough,
even though my symbol paths were pointing to the correct location.

To get my break point to trigger I had to copy my PDB to the
Windows\Installer\MSI63CB.tmp- folder which is where the DLLs are temporally
extracted when running the MSI and manually reload the symbols.

Unit Testing: Fully agree with you that the code should be unit tested
before.  This exercise I am doing is simply learning the ins and outs of
writing MSis using WIX and various possibilities

Thanks for the tips they are always more than welcomed....


-----Original Message-----
From: Christopher Painter [mailto:chr...@iswix.com] 
Sent: February-13-2013 4:56 PM
To: General discussion for Windows Installer XML toolset.;
wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] C# Custom Actions - Cannot Trace


For C# using DTF it's MMsiBreak.  For C/C++ it's MsiBreak.  Also you have to
restart the machine after setting the env var  for the service control
manager to pick up the environment change and pass it along to the Windows
Installer service.

I've debugged many DTF custom actions it's entirely possible to attach a 
debugger to the messagebox.   That said, I find it easier to unit test the 
class and then create the custom action class as a very thin veneer around
it.  Testing inside MSI's is just too much friction for my taste.

----------------------------------------
 From: "Marc Beaudry" <mbeau...@matrox.com>
Sent: Wednesday, February 13, 2013 3:36 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] C# Custom Actions - Cannot Trace

I am learning to use wix and have come across an issue that doesn't seem to
make sense to me.

I have created 2 CustomActions one in c++ and one in c#.  (Purely for
experimental purposes)

Both CAs simply contain a MessageBox. (To prove they are being called).  
And
both are called correctly.  The difference between the two is I can trace
the C++ one but not the C# one.

I use attach to process in both cases, but the c# one does not recognize its
PDB.

Here is what I have tried so far:

-          Used MSIBreak, nothing happens. But found posts of this issue
with Windows 7 not working very well

-          Tried this too, which should be the proper way to do this but I
get nothing.

Record record = new Record(2);

record[0] = "[1]";

record[1] = "My MSI Message";

session.Message(InstallMessage.Info, record); 

I have searched without any success, I am convinced this is something
obvious I am not seeing.  How do you attach to a process to be able to trace
a c# CA.  

My message box according to the debugger is running through Run32dll as
expected.

Thanks for the advice

Marc

----------------------------------------------------------------------------
--
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 and get the
hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

----------------------------------------------------------------------------
--
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 and get the
hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to