Jamison Wilde
2005-03-07 22:03:09 UTC
I've tried reading the info here, but it all seems
incomplete, or assumes lots of knowledge of Windows
Installer already. There is no basic info for people
coming to this for this first time in my opinion,
besides the excellent tutorial at
http://www.tramontana.co.hu/wix/.
I have never written an installer before, and will
probably only do it a couple more times in my life, so
I'm approaching this from a purely utilitarian point
of view. I don't care how it works, as long as it
does, and I have no philisophical attachment to the
various methods that can be used.
I have a COM DLL Windows Explorer Shell Extension,
which itself uses COM to talk to a Proxy Stub DLL.
This p/s is for talking to an EXE COM Server. The
purpose of this com exe server is to dynamically
generate the right click context menu in explorer
based on the file information, passing back the (wire
marshalled) modified HMENU, which works just fine.
Additonal info on this application (ExQueues Shell
Queue) can be found here:
http://sourceforge.net/projects/shellqueue
I have the installer already set up to copy the
relevant files to their destinations, which works just
fine. Now normally, for testing, all I have to do is
type 'regsvr32.exe [mypath]' to 'self-register' the
DLLs. And then run the executable to self-register it
too.
I very simply need the WiX generated MSI to register
these DLLS. I have been unable to find a simple
example which shows this in action.
I understand that I may need to create a Custom Action
to register my EXE-based Components, since this is not
supported by WiX, ala :
<CustomAction Id="Register"
FileKey="SelfRegistering_exe"
ExeCommand="/RegServer"
Execute="immediate"
Return="check"/>
<CustomAction Id="Unregister"
FileKey="SelfRegistering_exe"
ExeCommand="/UnregServer"
Execute="immediate"
Return="check"/>
<InstallExecuteSequence>
<Custom Action="Register"
After="InstallFinalize">(ADDLOCAL="Feature_Default")</Custom>
<Custom Action="Unregister"
Before="RemoveFiles">(REMOVE="ALL")</Custom>
</InstallExecuteSequence>
If this is still true, please verify this information.
If anyone has a more complete example, please post as
well (for example with the parent tags as well).
Where does this Custom Action go in the WiX source
file (in which or after which tags)? My wxs files is
based on Sample 4 from http://www.tramontana.co.hu/wix
(and can be seen directly in CVS at my project page).
I understand that there is some divisivness over using
'SelfReg', but if it works for a simple project, do I
really want to generate another set of tasks to do at
build time? (Not asking rhetorically.)
How do I register my 2 COM DLLs? 'tallow' does
nothing but fall over (invalid format) for my DLLs)and
exe obviously). How would I use self-reg for these,
since it seems to work just fine using regsrv32? Do I
need to use the <COmponent><Class> child tag? If so,
are there some examples of
this(web/mailarchive/personal), including which guids
need to be used where?
Thanks for your time, and hope others may find the
answers(?) useful as well. I apologize if the answers
are already on this list, but the basic search
functions suck at sf, and google has fits with things
like 'com' 'server' 'register'.
S. Jamison Wilde
__________________________________
Celebrate Yahoo!'s 10th Birthday!
Yahoo! Netrospective: 100 Moments of the Web
http://birthday.yahoo.com/netrospective/
incomplete, or assumes lots of knowledge of Windows
Installer already. There is no basic info for people
coming to this for this first time in my opinion,
besides the excellent tutorial at
http://www.tramontana.co.hu/wix/.
I have never written an installer before, and will
probably only do it a couple more times in my life, so
I'm approaching this from a purely utilitarian point
of view. I don't care how it works, as long as it
does, and I have no philisophical attachment to the
various methods that can be used.
I have a COM DLL Windows Explorer Shell Extension,
which itself uses COM to talk to a Proxy Stub DLL.
This p/s is for talking to an EXE COM Server. The
purpose of this com exe server is to dynamically
generate the right click context menu in explorer
based on the file information, passing back the (wire
marshalled) modified HMENU, which works just fine.
Additonal info on this application (ExQueues Shell
Queue) can be found here:
http://sourceforge.net/projects/shellqueue
I have the installer already set up to copy the
relevant files to their destinations, which works just
fine. Now normally, for testing, all I have to do is
type 'regsvr32.exe [mypath]' to 'self-register' the
DLLs. And then run the executable to self-register it
too.
I very simply need the WiX generated MSI to register
these DLLS. I have been unable to find a simple
example which shows this in action.
I understand that I may need to create a Custom Action
to register my EXE-based Components, since this is not
supported by WiX, ala :
<CustomAction Id="Register"
FileKey="SelfRegistering_exe"
ExeCommand="/RegServer"
Execute="immediate"
Return="check"/>
<CustomAction Id="Unregister"
FileKey="SelfRegistering_exe"
ExeCommand="/UnregServer"
Execute="immediate"
Return="check"/>
<InstallExecuteSequence>
<Custom Action="Register"
After="InstallFinalize">(ADDLOCAL="Feature_Default")</Custom>
<Custom Action="Unregister"
Before="RemoveFiles">(REMOVE="ALL")</Custom>
</InstallExecuteSequence>
If this is still true, please verify this information.
If anyone has a more complete example, please post as
well (for example with the parent tags as well).
Where does this Custom Action go in the WiX source
file (in which or after which tags)? My wxs files is
based on Sample 4 from http://www.tramontana.co.hu/wix
(and can be seen directly in CVS at my project page).
I understand that there is some divisivness over using
'SelfReg', but if it works for a simple project, do I
really want to generate another set of tasks to do at
build time? (Not asking rhetorically.)
How do I register my 2 COM DLLs? 'tallow' does
nothing but fall over (invalid format) for my DLLs)and
exe obviously). How would I use self-reg for these,
since it seems to work just fine using regsrv32? Do I
need to use the <COmponent><Class> child tag? If so,
are there some examples of
this(web/mailarchive/personal), including which guids
need to be used where?
Thanks for your time, and hope others may find the
answers(?) useful as well. I apologize if the answers
are already on this list, but the basic search
functions suck at sf, and google has fits with things
like 'com' 'server' 'register'.
S. Jamison Wilde
__________________________________
Celebrate Yahoo!'s 10th Birthday!
Yahoo! Netrospective: 100 Moments of the Web
http://birthday.yahoo.com/netrospective/