problem with ComPlusApplication and public properties on Win64...

5 messages Options
Embed this post
Permalink
Tim Johnson-4

problem with ComPlusApplication and public properties on Win64...

Reply Threaded More More options
Print post
Permalink
hi all,

using wix 3.0.5217.0

i am trying to build a 64 bit version of my installer but i am running into
problems. been looking into this for the better half of the week and am
stuck stuck stuck!

So my installer is pretty simple - dumps a few files and installs a legacy
complus application. As part of the UI sequence, i have a screen that
prompts for domain, username and password, which the complus application
runs as.   there's a snippet at the end of this email, showing the complus
and ui parts.

Anyway, compiled as a 32 bit msi, it works fine on 32 bit systems and also
on 64 bit systems (i have to remove the conditions which search the
registry).
But compiled as a 64 bit msi, it fails on 64 bit systems when run with the
full UI.  however when run in passive mode or with no ui and passing the
property values in on the command line, it works ok.  whats up with that?!?

what seems to be happening if i look at the logfile, is that the
[COMP_DOMAIN], [COMP_USER], and [COMP_PASS] are empty when the custom action
runs, even though valid data has been entered in the ui.

so it feels like my properties are not being transported to the msi server
process when run in UI mode, or they're being transported _after_ the
complus custom action has been created or run?  do i need to add something
to my InstallUISequence or something for this to happen? or <shock!> could
there be a bug?


thanks,

tim



<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:complus="
http://schemas.microsoft.com/wix/ComPlusExtension">
  <Fragment>
     <DirectoryRef Id='MyRoot' FileSource='SourceDir\Files\'>
        <Directory Id='MyDir' Name='MyDir'>
           <Component Id="MyComp" DiskId="1"
Guid="{A43CB130-1009-4a9c-A3DB-77CE6CA38B18}"  Win64="no">
              <File Id="MyFile.dll" Name="MyFile.dll"/>
                 <complus:ComPlusApplication Id="MyComPlus" Name="MyComPlus"
                              Identity="[COMP_DOMAIN]\[COMP_USER]"
Password="[COMP_PASS]"
                              ApplicationAccessChecksEnabled="no"
AccessChecksLevel="applicationComponentLevel" QueuingEnabled="no"
QueueListenerEnabled="no"
                              QCAuthenticateMsgs="secureApps"
 RunForever="yes">
                 <complus:ComPlusAssembly Id='MyAssembly' Type='native'
DllPath='[#MyFile.dll]' >
                    <complus:ComPlusComponent Id="MyComponentId"
CLSID="B34B6091-D8AB-4E51-A189-91623115F3DE" Transaction="none"
JustInTimeActivation="yes" ComponentAccessChecksEnabled="no"
Synchronization="required" EventTrackingEnabled="yes" />
                 </complus:ComPlusAssembly>
              </complus:ComPlusApplication>
           </Component>
        </Directory>
     </DirectoryRef>

...<snip>...

      <Property Id="COMP_DOMAIN" Admin="yes"></Property>
      <Property Id="COMP_USER" Admin="yes"></Property>
      <Property Id="COMP_PASS" Admin="no" Hidden="yes"></Property>
      <UI>
         <Dialog Id="ServerSetupDlg" Width="370" Height="270"
Title="[ProductName] [Setup]" NoMinimize="yes">
            <Control Id="ComPlusDomainLabel" Type="Text" X="45" Y="73"
Width="220" Height="15" TabSkip="no" Text="User domain"/>
            <Control Id="ComPlusDomainEdit" Type="Edit" X="45" Y="85"
Width="220" Height="18" Property="COMP_DOMAIN"  Text="{80}" />
            <Control Id="ComPlusUserLabel" Type="Text" X="45" Y="110"
Width="220" Height="15" TabSkip="no" Text="User name"/>
            <Control Id="ComPlusUserEdit" Type="Edit" X="45" Y="122"
Width="220" Height="18" Property="COMP_USER" Text="{80}" />
            <Control Id="ComPlusPassLabel" Type="Text" X="45" Y="147"
Width="220" Height="15" TabSkip="no" Text="User password"/>
            <Control Id="ComPlusPassEdit" Type="Edit" Password="yes" X="45"
Y="157" Width="220" Height="18" Property="COMP_PASS" Text="{80}" />

... etc...
------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Bob Arnson-6

Re: problem with ComPlusApplication and public properties on Win64...

Reply Threaded More More options
Print post
Permalink
Tim Johnson wrote:
>       <Property Id="COMP_DOMAIN" Admin="yes"></Property>
>  

Check out the Secure attribute.

--
sig://boB
http://joyofsetup.com/



------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Tim Johnson-4

Re: problem with ComPlusApplication and public properties on Win64...

Reply Threaded More More options
Print post
Permalink
tried that and it has the same problem - works fine with /passive, but
doesn't work from the ui.

On 7/4/09, Bob Arnson <[hidden email]> wrote:

> Tim Johnson wrote:
>>       <Property Id="COMP_DOMAIN" Admin="yes"></Property>
>>
>
> Check out the Secure attribute.
>
> --
> sig://boB
> http://joyofsetup.com/
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users
>

------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Brian Rogers

Re: problem with ComPlusApplication and public properties on Win64...

Reply Threaded More More options
Print post
Permalink
Hey Tim,

Have you done any type of diff'ing on the logs that would be generated from
the three different types of installs you mentioned (32-bit, 64-bit passive,
64-bit full)? You should see when the server state transfers and what the
values are. Remember to use the "/lvx* [logfilename]" switch.

Thanks,

Brian Rogers
"Intelligence removes complexity." - Me
http://blogs.msdn.com/icumove <-- NEW


On Mon, Jul 6, 2009 at 6:52 AM, Tim Johnson <[hidden email]>wrote:

> tried that and it has the same problem - works fine with /passive, but
> doesn't work from the ui.
>
> On 7/4/09, Bob Arnson <[hidden email]> wrote:
> > Tim Johnson wrote:
> >>       <Property Id="COMP_DOMAIN" Admin="yes"></Property>
> >>
> >
> > Check out the Secure attribute.
> >
> > --
> > sig://boB
> > http://joyofsetup.com/
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > _______________________________________________
> > WiX-users mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Tim Johnson-4

Re: problem with ComPlusApplication and public properties on Win64...

Reply Threaded More More options
Print post
Permalink
Brian,

had a look now, and there are some differences that seem important... most
importantly, the "Switching to server" line, and that showed me what the
problem was.

i had a registry search looking for a key that was a REG_MULTI_SZ that was
setting a property to tell me if a particular SQL Server instance was
installed. See below:

      <Property Id="SQLSERVER">
         <RegistrySearch Id="SQLServer" Root="HKLM"
Key="SOFTWARE\Microsoft\Microsoft Sql Server" Type="raw"
Name="InstalledInstances"/>
      </Property>
      <Condition Message="This application requires Microsoft SQL Server.
Please installl Microsoft SQL Server 2005.">
         <![CDATA[Installed OR (SQLSERVER >< MSSQLSERVER)]]>
      </Condition>


that works fine, but it seems like that public property gets set to a
particular value that screws up transferring the properties to the server.
my 32 bit installer, i had to comment this out as i don't have sql server
installed on the 32 bit machine!  so i guess it might also be failing on a
32 bit machine too...  changing the registry search to a different key
resulted in getting the install to work in all scenarios.

another interesting part of the log that caught my attention - theres a line
that gets added with all the properties that get passed to set up the
complus app (see below), and as part of that my actual password gets printed
out, even though i've set that as a secure property.  not a major issue for
me, but could be for someone?


MSI (s) (DC:E0) [17:47:25:557]: Executing op:
CustomActionSchedule(Action=ComPlusInstallExecute,ActionType=3073,Source=BinaryData,Target=ComPlusInstallExecute,CustomActionData=C:\DOCUME~1\tjohnson\LOCALS~1\Temp\CPI374BD64541FF1.tmp€CreateComPlusPartitions€Creating
COM+ partitions€Partition: [1]€0€AddUsersToComPlusPartitionRoles€Adding
users to COM+ partition roles€Role: [1]€0€AddComPlusPartitionUsers€Setting
default COM+ partitions for users€User:
[1]€0€CreateComPlusApplications€Creating COM+ applications€Application:
[1]€3€1€10000€PipelineRepository€{AFACF879-64CF-4AFE-BE34-3E3F0A18FDB6}€PipelineRepository€€8
*€Identity€americas\tjohnson*
€AccessChecksLevel€1€QueueListenerEnabled€0€RunForever€1€ApplicationAccessChecksEnabled€0€QueuingEnabled€0€QCAuthenticateMsgs€0€
*Password€MyActualPassword*
€1€10000€PipelineMapEditor€{4289EAC9-9369-4A39-B969-FA92E62F15C1}€PipelineMapEditor€€8€
*Identity€americas\tjohnson€*
AccessChecksLevel€1€QueueListenerEnabled€0€RunForever€1€ApplicationAccessChecksEnabled€0€QueuingEnabled€0€QCAuthenticateMsgs€0
*€Password€MyActualPassword€*
1€10000€PipelineMonitor€{0BE7A058-78E4-4605-8E49-


thanks for all your assistance, Bob and Brian.

regards,
tim.

On Mon, Jul 6, 2009 at 4:05 PM, Brian Rogers <[hidden email]> wrote:

> Hey Tim,
>
> Have you done any type of diff'ing on the logs that would be generated from
> the three different types of installs you mentioned (32-bit, 64-bit
> passive,
> 64-bit full)? You should see when the server state transfers and what the
> values are. Remember to use the "/lvx* [logfilename]" switch.
>
> Thanks,
>
> Brian Rogers
> "Intelligence removes complexity." - Me
> http://blogs.msdn.com/icumove <-- NEW
>
>
> On Mon, Jul 6, 2009 at 6:52 AM, Tim Johnson <[hidden email]
> >wrote:
>
> > tried that and it has the same problem - works fine with /passive, but
> > doesn't work from the ui.
> >
> > On 7/4/09, Bob Arnson <[hidden email]> wrote:
> > > Tim Johnson wrote:
> > >>       <Property Id="COMP_DOMAIN" Admin="yes"></Property>
> > >>
> > >
> > > Check out the Secure attribute.
> > >
> > > --
> > > sig://boB
> > > http://joyofsetup.com/
> > >
> > >
> > >
> > >
> >
> ------------------------------------------------------------------------------
> > > _______________________________________________
> > > WiX-users mailing list
> > > [hidden email]
> > > https://lists.sourceforge.net/lists/listinfo/wix-users
> > >
> >
> >
> >
> ------------------------------------------------------------------------------
> > _______________________________________________
> > WiX-users mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
>
> ------------------------------------------------------------------------------
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users