Hi Chris,
Oops... no I didn't mean to reply just to you. Bringing the list back in
on the conversation!
I'm certainly not trying to imply that all custom actions are evil, but
a significant amount of time and effort have gone into the built-in
Microsoft custom actions, and the ones so far included in WiX to
minimize the risk of problems.
If you've been writing installations for 12+ years, then like me (around
16 years, mostly using WISE and InstallShield) you've probably hosed
yourself at least once. You're also experienced enough to know when a
custom action *is* appropriate. Perhaps I'm reading more into the
messages that pop up here than I should, but many seem to be from people
who are just getting started with a declarative installation experience
and don't want to read the (admittedly mind-numbing) documentation. They
want (and sometimes need) to get something out the door quickly and may
not even care about possible problems the decision will cause later for
their users.
Yes, Microsoft Installer is disturbingly lacking in some areas -
especially after being "out in the wild" as long as it has. I'd be
surprised if anyone reading this list disagreed with that analysis!
Sadly, we can only try to do the best we can with what is available. I
certainly agree that sometimes that means coloring outside the lines.
A wrapper DLL certainly doesn't prevent someone from writing a proper CA
pattern. I'm sure anyone with the appropriate experience would do
everything in their power to do so. The challenge is with those who may
not understand why they should do so.
I also was not intending to sound "nanny" like with my comment aimed at
the poster of the original question. I just know from personal
experience that sometimes people say things like "I need to call method
X" because they haven't paid attention to the fact that the desired
result is something which could (and should) be accomplished natively.
(An example would be where a co-worker was convinced that he needed a
custom action to write a specific value to a file... but the application
in question not only did not need that setting, it actually changed it
to a different value on first execution!)
I personally have never suggested iexpress as a bootstrapper (mostly
because I do not know the license status for it). I suspect that those
who have may believe that since it was deployed in the IE6
Administration Kit they can use it freely. (They may even be right, or
like you also have InstallShield licenses!) Yes, IMHO if you are using
it without any necessary license it is indeed piracy and should not be
condoned.
Even if we didn't agree on everything, I'm sure we'd get on fine over a
beer (or whatever your drink of choice is)! :-)
Regards,
Richard
________________________________
From: Christopher Painter [mailto:[EMAIL PROTECTED]
Sent: Monday, January 07, 2008 4:22 PM
To: Foster, Richard - PAL
Subject: RE: [WiX-users] Wrapper dll required?
Did you mean to reply to just me?
For your first argument, it doesn't automatically make it bad either.
If we apply your logic then ALL custom actions are evil. EXE's, Type 1
DLL's and Script is all arbitrary code also. I'm sorry, but I've been
writing installs for 12+ years and I'm not going to drink that kool-aid
because no matter how many times people try to say it, MSI is not
feature complete enough to stay within the confines of declarative
programming.
As for configuration changing CA's, I never mentioned this. But let's
assume that this is the case. If the wrapping DLL can map properties
to function arguments in/out then you could use this pattern to populate
CustomActionData. You could also retrieve CustomActionData in the
wrapper and pass it to a function. So I'm not seeing how using a
wrapper to call a non type-1 DLLFx is preventing you from writing a
proper CA pattern. The worse I see is you can't use the handle to
pump messages back up the stack. It's a little more complicated then
it needs to be and probably has a couple more moving parts that could
fail.... but sometimes we are given third party API's to interact with
that we can't rewrite and we need to adapt with a thunking layer.
As for the situation comment.... that presumes a nanny state where we
need to ask the requirements police how to write our installs. That's
the sad downside to declartive programming..... everyone just assumes
that us wee little setup developer automatically don't know what we are
doing and that we haven't thought it through. This is further
reenforced by the `ca's show you've failed` type dogma.
As for the pirate comment, I see people around here rip the iexpress
bootstrapper all the time. Is that not piracy? I wouldn't be
pirating because I happen to own InstallShield and I'm licensed to
redist it.
Otherwise I'm sure you and I probably agree on just about everything.
:-)
Regards,
Chris
[EMAIL PROTECTED] wrote:
Just because another installer supports execution of an
arbitrary piece of code doesn't make it a good idea.
I, for one, happen to agree with the WiX team's decision not to
support such an operation (at least in the current version) because of
the significant risks such support places on creating *maintainable*
installation packages with full support for rollback etc.
While there are some excellent reasons for custom actions, in
many cases the desire to use a custom action indicates a flaw in the
installation or application design.
For anyone in such a situation, If you can give at least some
information about the exact task being performed there is a much greater
chance that you'll get a response which helps you safely accomplish your
goal.
Regards,
Richard
P.S. As far as "ripping and consuming" a third party library
without knowing the licensing status of same... I for one will just
forget you mentioned it! There is a name for someone engaging in that
type of activity, and that name is "pirate" or "thief".
________________________________
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Christopher Painter
Sent: Monday, January 07, 2008 3:42 PM
To: WiX Users
Subject: Re: [WiX-users] Wrapper dll required?
InstallShield has such support and it would be useful if WiX did
also. Basically there is a custom table that you can use to describe
dll, exported function name, arguments and return and map them to/from
constants and properties. The engine ( DLLWrap.dll ) is about 200k.
The dll is redistributed in many IS packages and could easily be
ripped and consumed if you weren't particularly worried about whether
this is legal or not. ( It wouldn't be the first time I saw third party
bits repurposed around here. )
________________________________
* C O N F I D E N T I A L I T Y N O T I C E *
-----------------------------------------------------------
The content of this e-mail is intended solely for the use of the
individual or entity to whom it is addressed. If you have received this
communication in error, be aware that forwarding it, copying it, or in
any way disclosing its content to any other person, is strictly
prohibited. Quixote Traffic Corporation is neither liable for the
contents, nor for the proper, complete and timely transmission of (the
information contained in) this communication. If you have received this
communication in error, please notify the author by replying to this
e-mail immediately and delete the material from any computer.
________________________________
Looking for last minute shopping deals? Find them fast with
Yahoo! Search.
<http://us.rd.yahoo.com/evt=51734/*http:/tools.search.yahoo.com/newsearc
h/category.php?category=shopping>
* C O N F I D E N T I A L I T Y N O T I C E *
-----------------------------------------------------------
The content of this e-mail is intended solely for the use of the individual or
entity to whom it is addressed. If you have received this communication in
error, be aware that forwarding it, copying it, or in any way disclosing its
content to any other person, is strictly prohibited. Quixote Traffic
Corporation is neither liable for the contents, nor for the proper, complete
and timely transmission of (the information contained in) this communication.
If you have received this communication in error, please notify the author by
replying to this e-mail immediately and delete the material from any computer.
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users