Hello Phil
Thank you for your replay
Here are my conditions. Not installed and REMOVE=ALL are used for them.

<Custom Action="CmdInstallComId" After="InstallInitialize"><![CDATA[(Not 
Installed) And ((Privileged and VersionNT >= 502) or VersionNT = 501) And 
(ISOFFICEX64 = "0")]]></Custom>
<Custom Action="CmdInstallComId64" After="InstallInitialize"><![CDATA[(Not 
Installed) And ((Privileged and VersionNT >= 502) or VersionNT = 501) And 
(ISOFFICEX64 = "1")]]></Custom>
<Custom Action="InstallComId" After="CmdInstallComId"><![CDATA[(Not Installed) 
And ((Privileged and VersionNT >= 502) or VersionNT = 501) And (ISOFFICEX64 = 
"0")]]></Custom>
<Custom Action="InstallComId64" After="CmdInstallComId64"><![CDATA[(Not 
Installed) And ((Privileged and VersionNT >= 502) or VersionNT = 501) And 
(ISOFFICEX64 = "1")]]></Custom>
<Custom Action="CmdUnInstallComId" Before="RemoveFiles"><![CDATA[Installed And 
REMOVE="ALL" And ((Privileged and VersionNT >= 502) or VersionNT = 501) And 
(ISOFFICEX64 = "0")]]></Custom>
<Custom Action="CmdUnInstallComId64" Before="RemoveFiles"><![CDATA[Installed 
And REMOVE="ALL" And ((Privileged and VersionNT >= 502) or VersionNT = 501) And 
(ISOFFICEX64 = "1")]]></Custom>
<Custom Action="UnInstallComId" After="CmdUnInstallComId"><![CDATA[Installed 
And REMOVE="ALL" And ((Privileged and VersionNT >= 502) or VersionNT = 501) And 
(ISOFFICEX64 = "0")]]></Custom>
<Custom Action="UnInstallComId64" 
After="CmdUnInstallComId64"><![CDATA[Installed And REMOVE="ALL" And 
((Privileged and VersionNT >= 502) or VersionNT = 501) And (ISOFFICEX64 = 
"1")]]></Custom>

I do not want make a Major update due to it's difficult for end users. it's 
necessary to uninstall previous version and then install new one. I would want 
to run one file without special command line that make change only one or two 
files in a product. like a hot fix.

I think the best way for me, it will be set such register/unregister contions 
of the library that will be executed each time (install/uninstall/reinstall, 
patch) Thanks,
Alex.

Пятница,  6 декабря 2013, 8:34 -08:00 от Phil Wilson <phildgwil...@gmail.com>:
>What condition did you use on the CA in the original install? If you had
>used a better condition the CA would already be running during the patch
>install. For the sake of argument, let's assume you used the condition "Not
>Installed". This is a bad decision for at least two reasons (and there are
>more):
>1. It's a product based condition, and runs the CA even if that assembly
>doesn't get installed because of feature selection choices.
>2. Similarly, a condition based on the component being installed would run
>at first install, repair, and patch install, and that's almost always what
>you want.
>
>So the answer is to fix the CA condition and rebuild the patch.
>$componentname=3 might be a better condition.
>
>http://msdn.microsoft.com/en-us/library/aa368012 (v=vs.85).aspx
>
>But as said before, you don't need custom actions to do this, ever. Yes,
>there are tools like regsvr32, regasm, gacutil, installutil, but they never
>need running during an MSI install. As suggested, a major upgrade is
>probably the best way to get rid of the CAs and start over without using
>them.
>
>Phil Wilson
>
>
>On Thu, Dec 5, 2013 at 11:56 AM, Hoover, Jacob
>< jacob.hoo...@greenheck.com >wrote:
>
>> Don't patch it, Major Upgrade it and kill that CA.  You can use heat to
>> harvest the COM info from the DLL and then easily support patches without
>> having to fight Windows Installer because the previous developer did it in
>> a non-standard way.
>>
>> If your issue is with VBA, you may also need to deploy the tlb files with
>> your installer as I don't believe that managed assemblies contain an
>> embedded tlb (but regasm generates one).
>>
>> -----Original Message-----
>> From: Smagin Alexander [mailto:kf-...@list.ru]
>> Sent: Thursday, December 05, 2013 1:44 PM
>> To: General discussion about the WiX toolset.
>> Subject: Re: [WiX-users] How to execute CA after path is applied
>>
>>
>> Yes, I register library by executing regasm.exe "library" /silent
>> /codebase /tl in CA during original install <CustomAction
>> Id="CmdInstallComId" Property="InstallComId"
>> Value="&quot;[NETFRAMEWORK20INSTALLROOTDIR]regasm.exe&quot;
>> &quot;[APPLICATIONROOTDIRECTORY]BARSToolbar.Service.dll&quot; /silent
>> /codebase
>> /tlb:&quot;[APPLICATIONROOTDIRECTORY]BARSToolbar.Service.tlb&quot;" />
>> <CustomAction Id="InstallComId" BinaryKey="WixCA" DllEntry="CAQuietExec"
>> Execute="commit" HideTarget="no" Return="check" Impersonate="no" /> It was
>> made before me by previous developer. During uninstalling the library
>> deregistered in the same way. I did not change interface of the library in
>> last change but simple patching of it does not work for me. VBA cannot
>> create a COM object after the patch is applied, but if the library is
>> reregistered by unregistering and then registering again regasm.exe
>> BARSToolbar.Service.dll /silent /unregister regasm.exe
>> BARSToolbar.Service.dll /silent /codebase /tlb It works. More over this
>> operation requires admin privileges. I’m not familiar much closer with .Net
>> and do not know how it can be registered in other way. Thanks, Alex.
>>
>> Четверг,  5 декабря 2013, 11:11 -08:00 от Phil Wilson <
>>  phildgwil...@gmail.com >:
>> >If you registered that type library with a CA in the original install
>> >that may not have been the best option, TLB entries are basically just
>> >a bunch of HKLM\Interface entries that can be put in the registry (Heat
>> >may even extract them) so there is no need to run any code at all. So
>> >it matters how you created the original typelib registration.  It's not
>> >clear if you actually mean "generate new tbl [sic] file" because you
>> >can generate them before the build and just ship the file and the
>> >registry entries. The big picture here is there is no need to ever run
>> >regasm during an install or during a patch - just use Heat and populate
>> the registry tables.
>> >
>> >Also  I'm not convinced that you need to re-register typelib
>> >information for just a file version change (as opposed to an assembly
>> >version change which is part of the COM registration).  So I think you
>> >need to clarify if you are actually installing the tlb file or wanting
>> >to re-create it during the install, and how you originally created the
>> >typelib registration entries, and if anything has actually changed in
>> >the interfaces and COM registration.  This can all be rather complicated.
>> >
>> >Phil Wilson
>> >
>> >
>> >On Thu, Dec 5, 2013 at 10:43 AM, Smagin Alexander <  kf-...@list.ru >
>> wrote:
>> >
>> >>
>> >> I have created a path (msp file)  as difference beetwen small update
>> >> 1.0.0.0 to 1.0.0.1. One dll is changes. this dll is .Net assembly
>> >> (COM Object). So I need to reregister it ( generate new tbl file)
>> >> after the patch is applied. Does the path supported to perform some
>> >> custom actions such as run regasm command to register new dll?
>> >> How can it be done?
>> >>
>> >> Thanks,
>> >> Alex.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> ---------
>> >> Sponsored by Intel(R) XDK
>> >> Develop, test and display web and hybrid apps with a single code base.
>> >> Download it for free now!
>> >>
>> >>
>> >>  http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg
>> >> .clktrk _______________________________________________
>> >> WiX-users mailing list
>> >>  WiX-users@lists.sourceforge.net
>> >>  https://lists.sourceforge.net/lists/listinfo/wix-users
>> >>
>> >-----------------------------------------------------------------------
>> >-------
>> >Sponsored by Intel(R) XDK
>> >Develop, test and display web and hybrid apps with a single code base.
>> >Download it for free now!
>> > http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.c
>> >lktrk _______________________________________________
>> >WiX-users mailing list
>> > WiX-users@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>>
>> ------------------------------------------------------------------------------
>> Sponsored by Intel(R) XDK
>> Develop, test and display web and hybrid apps with a single code base.
>> Download it for free now!
>>
>>  http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
>> _______________________________________________
>> WiX-users mailing list
>>  WiX-users@lists.sourceforge.net
>>  https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>> ------------------------------------------------------------------------------
>> Sponsored by Intel(R) XDK
>> Develop, test and display web and hybrid apps with a single code base.
>> Download it for free now!
>>
>>  http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
>> _______________________________________________
>> WiX-users mailing list
>>  WiX-users@lists.sourceforge.net
>>  https://lists.sourceforge.net/lists/listinfo/wix-users
>>
>------------------------------------------------------------------------------
>Sponsored by Intel(R) XDK 
>Develop, test and display web and hybrid apps with a single code base.
>Download it for free now!
>http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
>_______________________________________________
>WiX-users mailing list
>WiX-users@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Sponsored by Intel(R) XDK 
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to