Hmmm... I'm guessing there was something else at play.  DTF can handle 
entry points up to 72 characters in length before it'll throw a compile 
error. 

----------------------------------------
 From: "Steven Ogilvie" <steven.ogil...@titus.com>
Sent: Thursday, October 31, 2013 2:57 PM
To: "General discussion about the WiX toolset." 
<wix-users@lists.sourceforge.net>
Subject: Re: [WiX-users] Custom action was working now it isn't.... 
HELP...

So weird...

Was working before, stopped working... function name had 26 characters 
removed 7 characters now it works...

Go figure...

Steve

-----Original Message-----
From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] 
Sent: October-31-13 3:18 PM
To: General discussion about the WiX toolset.
Subject: Re: [WiX-users] Custom action was working now it isn't.... 
HELP...

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

Chris has quite a few suggestions on what could cause that error.

-----Original Message-----
From: StevenOgilvie [mailto:sogil...@msn.com]
Sent: Thursday, October 31, 2013 2:05 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Custom action was working now it isn't.... HELP...

A different pair of eyes should help...
I have a custom action that reads the registry and goes through the SQL 
Server Instances to get the last instance name (if there are more than 
one)... Was working like a charm, now for about a week it stopped working 
and I am getting this error:

Action ended 14:57:56: CostFinalize. Return value 1.
MSI (c) (A4:80) [14:57:56:213]: Doing action: CA_GetSQLServerInstanceName 
Action 14:57:56: CA_GetSQLServerInstanceName. CA: Getting SQL Server 
instance name...
Action start 14:57:56: CA_GetSQLServerInstanceName.
MSI (c) (A4:80) [14:57:56:240]: Creating MSIHANDLE (1) of type 790542 for 
thread 7552 MSI (c) (A4:2C) [14:57:56:241]: Invoking remote custom action. 
DLL:
C:\Users\STEVEN~1.OGI\AppData\Local\Temp\MSIF66D.tmp, Entrypoint:
GetSQLExpressInstanceName
MSI (c) (A4:A4) [14:57:56:242]: Cloaking enabled.
MSI (c) (A4:A4) [14:57:56:242]: Attempting to enable all disabled 
privileges before calling Install on Server MSI (c) (A4:A4) [14:57:56:242]: 
Connected to service for CA interface.
CustomAction CA_GetSQLServerInstanceName returned actual error code 1154 
but will be translated to success due to continue marking MSI (c) (A4:2C) 
[14:57:56:375]: Closing MSIHANDLE (1) of type 790542 for thread 7552 Action 
ended 14:57:56: CA_GetSQLServerInstanceName. Return value 1.

The custom action is straight forward:
<CustomAction Id="CA_GetSQLServerInstanceName" 
BinaryKey="BIN_CustomAction"
DllEntry="GetSQLExpressInstanceName" Impersonate="no" Execute="immediate"
Return="ignore" />
    <UI>
      <ProgressText Action="CA_GetSQLServerInstanceName">CA: Getting SQL 
Server instance name...</ProgressText>
    </UI>

<InstallExecuteSequence>
  <Custom Action="CA_GetSQLServerInstanceName" 
After="InstallInitialize">NOT Installed</Custom>

<InstallUISequence>
  <Custom Action="CA_GetSQLServerInstanceName"
Before="MigrateFeatureStates">NOT Installed</Custom>

Using a DTF custom action dll:

/// <summary>
/// Gets the SQL Server Express instance name for the SERVER_NAME /// 
</summary> /// Session session /// <returns>ActionResult Success</returns> 
[CustomAction] public static ActionResult GetSQLExpressInstanceName(Session 
session) {
            try
            {
                if (session == null)
                {
                    throw new ArgumentNullException("session");
                }

                SetSessionProperty(session, "SQLSERVEREXPRESS_INSTANCE", 
string.Empty);

                const string Key = @"SOFTWARE\\Microsoft\\Microsoft SQL 
Server\\Instance Names\\SQL";
                var localMachine = RegistryKey.OpenBaseKey(
                    RegistryHive.LocalMachine,
                    Environment.Is64BitOperatingSystem ?
RegistryView.Registry64 : RegistryView.Registry32);
                var regKey = localMachine.OpenSubKey(Key);
                if (regKey != null)
                {
                    foreach (var valueName in regKey.GetValueNames())
                    {
                        if (!string.Equals(valueName, "MSSQLSERVER"))
                        {
                            var expressKey = 
@"SOFTWARE\\Microsoft\\Microsoft SQL Server\\" + valueName;
                            var expressRegKey = 
localMachine.OpenSubKey(expressKey);
                            if (expressRegKey != null)
                            {
                                SetSessionProperty(session, 
"SQLSERVEREXPRESS_INSTANCE", "\\" + valueName);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                WriteErrorLogInstall(session, "GetSQLExpressInstanceName
failed: ", ex, true);
            }

            return ActionResult.Success; }

Any ideas why this isn't working?

thanks,

Steve

--
View this message in context: 
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Custom-action-
was-working-now-it-isn-t-HELP-tp7590194.html
Sent from the wix-users mailing list archive at Nabble.com.

----------------------------------------------------------------------------
--
Android is increasing in popularity, but the open development platform that 
developers love is also attractive to malware creators. Download this white 
paper to learn more about secure code signing practices that can help keep 
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk


_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

----------------------------------------------------------------------------
--
Android is increasing in popularity, but the open development platform that 
developers love is also attractive to malware creators. Download this white 
paper to learn more about secure code signing practices that can help keep 
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk


_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

----------------------------------------------------------------------------
--
Android is increasing in popularity, but the open development platform 
that
developers love is also attractive to malware creators. Download this 
white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk


_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&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