I don't know whether I should cry or shout for joy...

Sigh...

Renamed the actual DLLEntry method name to ServicesConnectionStrings

Now my custom action is being called and is "working" what I am trying to do 
isn't getting the right xml element but at least it is "working" :)

Steve

-----Original Message-----
From: Steve-Ogilvie [mailto:steven.ogil...@titus.com] 
Sent: March-04-14 2:27 PM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] DTF custom action not working but an almost identical 
is...

Phil,
One custom action is working the other isn't... it is using the SAME custom 
action DLL so:

1.     Are you referencing the correct DLL in the Binary table?       yes
2.     Are you referencing the correct exported function name?     yes
3.     Is your class public?                                                    
      yes
4.     Is your method using the correct signature? I.e. is it:
5.     Marked with the correct CustomAction attribute                   yes
6.     Marked as public?                                                        
     yes
7.     Marked as static?                                                        
      yes
8.     Return ActionResult?                                                     
     yes
9.     Take Session as an Argument?                                           
yes
10.  Make sure you are using the WiX C# Custom Action Project type o ensure the 
postbuild event is called to create the native DLL wrapper. (See #1) yes:

<?define TitusInstallerCA = 
"$(var.scSourcePath)\Main\Resources\TitusInstaller.CA.dll"?>
<Binary Id="BIN_CustomAction" SourceFile="$(var.TitusInstallerCA)"/>

<CustomAction Id="CA_UPGRADE_GET_CONNECTSTR" BinaryKey="BIN_CustomAction" 
DllEntry="GetServicesConnectString" Impersonate="yes" Execute="immediate" 
Return="ignore"/> namespace Titus.Installer.CustomActions {
    using Microsoft.Deployment.WindowsInstaller;

    public class CustomAction
    {

[CustomAction]
public static ActionResult GetServicesConnectString(Session session) {
    MessageBox.Show("GetServicesConnectionSTring", "get services connect 
string", MessageBoxButtons.OK);
    return ActionResult.Success;
}


From: Phil Wilson [via Windows Installer XML (WiX) toolset] 
[mailto:ml-node+s687559n7593107...@n2.nabble.com]
Sent: March-04-14 2:10 PM
To: Steven Ogilvie
Subject: Re: DTF custom action not working but an almost identical is...

You've seen this?

http://stackoverflow.com/questions/3560370/custom-action-in-c-sharp-used-via-wix-fails-with-error-1154


---------------
Phil Wilson


On Tue, Mar 4, 2014 at 10:47 AM, Steve-Ogilvie <[hidden 
email]</user/SendEmail.jtp?type=node&node=7593107&i=0>> wrote:

> Hi folks,
>
> I have spent WAY TOO much time on this...
>
> I get an error 1154 (please don't tell me to refer to blah blah) I 
> have 2 custom actions...
>
> 1 works, the other doesn't
>
> The custom action CA_UPGRADE_GET_WEBPORTNUM works, the 
> CA_UPGRADE_GET_CONNECTSTR doesn't...
>
> scenario:
> When we run an upgrade I need to get info from previous install and 
> store them into MSI Properties so that after the upgrade uninstalls 
> the previous version then installs the new version we just populate 
> some info from the previous install to the new install instead of 
> running code to create the info...
>
> As you see I have created a SIMPLE custom action that just pops up a 
> message box then returns actionresult.success....
>
>
> PRODUCT.WXS:
>
> include file:
> <?define TitusInstallerCA =
> "$(var.scSourcePath)\Main\Resources\TitusInstaller.CA.dll"?>
>
> <Binary Id="BIN_CustomAction" SourceFile="$(var.TitusInstallerCA)"/>
>
> <CustomAction Id="CA_UPGRADE_GET_WEBPORTNUM" BinaryKey="BIN_CustomAction"
> DllEntry="GetWebSitePortNumber" Impersonate="yes" Execute="immediate"
> Return="ignore"/>
>     <UI>
>       <ProgressText Action="CA_UPGRADE_GET_WEBPORTNUM">CA: Getting 
> TITUS web site port number...</ProgressText>
>     </UI>
>
> <CustomAction Id="CA_UPGRADE_GET_CONNECTSTR" BinaryKey="BIN_CustomAction"
> DllEntry="GetServicesConnectString" Impersonate="yes" Execute="immediate"
> Return="ignore"/>
>
> <InstallExecuteSequence>
>       <Custom Action="CA_UPGRADE_GET_WEBPORTNUM"
> Before="RemoveExistingProducts">WIX_UPGRADE_DETECTED</Custom>
>       <Custom Action="CA_UPGRADE_GET_CONNECTSTR"
> After="CA_UPGRADE_GET_WEBPORTNUM">WIX_UPGRADE_DETECTED</Custom>
>
> <InstallUISequence>
>       <Custom Action="CA_UPGRADE_GET_WEBPORTNUM"
> After="MigrateFeatureStates">WIX_UPGRADE_DETECTED</Custom>
>       <Custom Action="CA_UPGRADE_GET_CONNECTSTR"
> After="CA_UPGRADE_GET_WEBPORTNUM">WIX_UPGRADE_DETECTED</Custom>
>     </InstallUISequence>
>
> CUSTOM ACTION CODE:
>
> [CustomAction]
>         public static ActionResult GetServicesConnectString(Session session)
>         {
>             MessageBox.Show("GetServicesConnectionSTring", "get 
> services connect string", MessageBoxButtons.OK);
>             return ActionResult.Success;
>         }
>
> [CustomAction]
>         public static ActionResult GetWebSitePortNumber(Session session)
>         {
>             try
>             {
>                 if (session == null)
>                 {
>                     throw new ArgumentNullException("session");
>                 }
>
>                 const string FireWallName = "TITUS Web Administration 
> Port";
>
>                 var firewallPolicy =
> (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCf
> g.FwPolicy2"));
>
>                 var rule = firewallPolicy.Rules.Item(FireWallName);
>                 var fireWallPortNumber = rule.LocalPorts;
>
>                 SetSessionProperty(session, "ALLOW_REMOTE_ACCESS", 
> rule.Enabled ? "1" : "0");
>                 SetSessionProperty(session, "REMOTEACCESS_VALUE", 
> rule.Enabled ? "True" : "False");
>
>                 MessageBox.Show(fireWallPortNumber, "Fire wall port 
> number", MessageBoxButtons.OK);
>
>                 SetSessionProperty(session, "WEB_SITE_PORT", 
> fireWallPortNumber);
>             }
>             catch (Exception ex)
>             {
>                 WriteErrorLogInstall(session, "GetWebSitePortNumber failed:
> ", ex, true);
>                 return ActionResult.Failure;
>             }
>
>             WriteSuccessLogInstall(session, "GetWebSitePortNumber 
> succeeded...", true);
>             return ActionResult.Success;
>         }
>
>
> LOG FILE:
>
> Action ended 13:37:38: MigrateFeatureStates. Return value 1.
> MSI (c) (38:00) [13:37:38:336]: Doing action: 
> CA_UPGRADE_GET_WEBPORTNUM Action 13:37:38: CA_UPGRADE_GET_WEBPORTNUM. 
> CA: Getting TITUS web site port number...
> Action start 13:37:38: CA_UPGRADE_GET_WEBPORTNUM.
> MSI (c) (38:00) [13:37:38:336]: Creating MSIHANDLE (8) of type 790542 
> for thread 4608 MSI (c) (38:28) [13:37:38:336]: Invoking remote custom 
> action. DLL:
> C:\Users\ADMINI~1.DEV\AppData\Local\Temp\1\MSID745.tmp, Entrypoint:
> GetWebSitePortNumber
> MSI (c) (38!E4) [13:37:38:430]: Creating MSIHANDLE (9) of type 790531 
> for thread 4836
> SFXCA: Extracting custom action to temporary directory:
> C:\Users\ADMINI~1.DEV\AppData\Local\Temp\1\MSID745.tmp-\
> MSI (c) (38!E4) [13:37:38:430]: Closing MSIHANDLE (9) of type 790531 
> for thread 4836 MSI (c) (38!E4) [13:37:38:679]: Creating MSIHANDLE 
> (10) of type 790531 for thread 4836
> SFXCA: Binding to CLR version v4.0.30319 MSI (c) (38!E4) 
> [13:37:38:679]: Closing MSIHANDLE (10) of type 790531 for thread 4836 
> MSI (c) (38!E4) [13:37:38:742]: Creating MSIHANDLE (11) of type 790531 
> for thread 4836 Calling custom action 
> TitusInstaller!Titus.Installer.CustomActions.CustomAction.GetWebSitePo
> rtNumber MSI (c) (38!E4) [13:37:38:742]: Closing MSIHANDLE (11) of 
> type 790531 for thread 4836 MSI (c) (38!E4) [13:37:38:774]: PROPERTY 
> CHANGE: Adding ALLOW_REMOTE_ACCESS property. Its value is '1'.
> MSI (c) (38!E4) [13:37:38:774]: PROPERTY CHANGE: Adding 
> REMOTEACCESS_VALUE property. Its value is 'True'.
> MSI (c) (38!E4) [13:37:40:413]: PROPERTY CHANGE: Adding WEB_SITE_PORT 
> property. Its value is '34350'.
> MSI (c) (38!E4) [13:37:40:413]: Creating MSIHANDLE (12) of type 790531 
> for thread 4836
> 2014-03-04 13:37:40: SUCCESS:
> -----------------------------------------------
> MSI (c) (38!E4) [13:37:40:430]: Closing MSIHANDLE (12) of type 790531 
> for thread 4836 MSI (c) (38!E4) [13:37:40:430]: Creating MSIHANDLE 
> (13) of type 790531 for thread 4836 GetWebSitePortNumber succeeded...
> MSI (c) (38!E4) [13:37:40:430]: Closing MSIHANDLE (13) of type 790531 
> for thread 4836 MSI (c) (38:28) [13:37:40:491]: Closing MSIHANDLE (8) 
> of type 790542 for thread 4608 Action ended 13:37:40: 
> CA_UPGRADE_GET_WEBPORTNUM. Return value 1.
> MSI (c) (38:00) [13:37:40:491]: Doing action: 
> CA_UPGRADE_GET_CONNECTSTR Action 13:37:40: CA_UPGRADE_GET_CONNECTSTR.
> Action start 13:37:40: CA_UPGRADE_GET_CONNECTSTR.
> MSI (c) (38:00) [13:37:40:491]: Creating MSIHANDLE (14) of type 790542 
> for thread 4608 MSI (c) (38:40) [13:37:40:491]: Invoking remote custom 
> action. DLL:
> C:\Users\ADMINI~1.DEV\AppData\Local\Temp\1\MSIDFB3.tmp, Entrypoint:
> GetServicesConnectString
> CustomAction CA_UPGRADE_GET_CONNECTSTR returned actual error code 1154 
> but will be translated to success due to continue marking MSI (c) 
> (38:40) [13:37:40:555]: Closing MSIHANDLE (14) of type 790542 for 
> thread 4608 Action ended 13:37:40: CA_UPGRADE_GET_CONNECTSTR. Return 
> value 1.
>
>
>
>
> --
> View this message in context: 
> http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/DTF-cust
> om-action-not-working-but-an-almost-identical-is-tp7593106.html
> Sent from the wix-users mailing list archive at Nabble.com.
>
> ----------------------------------------------------------------------
> -------- Subversion Kills Productivity. Get off Subversion & Make the 
> Move to Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works.
> Faster operations. Version large binaries.  Built-in WAN optimization 
> and the freedom to use Git, Perforce or both. Make the move to Perforce.
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.
> clktrk _______________________________________________
> WiX-users mailing list
> [hidden email]</user/SendEmail.jtp?type=node&node=7593107&i=1>
> https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works.
Faster operations. Version large binaries.  Built-in WAN optimization and the 
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
[hidden email]</user/SendEmail.jtp?type=node&node=7593107&i=2>
https://lists.sourceforge.net/lists/listinfo/wix-users

________________________________
If you reply to this email, your message will be added to the discussion below:
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/DTF-custom-action-not-working-but-an-almost-identical-is-tp7593106p7593107.html
To unsubscribe from DTF custom action not working but an almost identical 
is..., click 
here<http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=7593106&code=U3RldmVuLk9naWx2aWVAdGl0dXMuY29tfDc1OTMxMDZ8ODU3MjA0NTIw>.
NAML<http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>




--
View this message in context: 
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/DTF-custom-action-not-working-but-an-almost-identical-is-tp7593106p7593108.html
Sent from the wix-users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the 
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&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