I've built my msi installer now, and tried to launch the CE App Manager:

Here's how I got my properties.
    <Property Id="CEAPPMGR">
      <RegistrySearch Id="CEAPPMGRCMD" Root="HKLM" Type="raw"
                      Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App 
Paths\CEAPPMGR.EXE" ></RegistrySearch>
    </Property>
    <Property Id="CEAPPMGRDIR">
      <RegistrySearch Id="CEAPPMGRD" Root="HKLM" Type="file"
                      Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App 
Paths\CEAPPMGR.EXE" ></RegistrySearch>
    </Property>

Then I install my files to the folder (I'm not sure why this used to be the 
preferred place--in a subfolder of ceappmgr, but there you go).

    <Condition Message="Microsoft ActiveSync or Windows Mobile Device Center 
software is required to install this software.">
      CEAPPMGR
    </Condition>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="CEAPPMGRDIR" >
     <Directory Id="MFR" Name="Wieser Software Ltd">
      <Directory Id="INSTALLLOCATION" Name="Dude">

       <Component Id="ProductComponent" 
Guid="17524da5-7862-470b-bffc-db6ce4a660a1">
              <File Id="MainProgram"  Name="Dude.cab"
                    Source="$(var.dude.TargetPath)\Dude.cab" DiskId="1"  >
              </File>
              <File Id="CeInstall"  Name="DudeF.ini"
                    Source="DudeF.ini" DiskId="1"  >
              </File>
              <File Id="ReleaseTxt" Name="release.txt" 
Source=".\release.txt" />
       </Component>

      </Directory>
     </Directory>
      </Directory>
  </Directory>

So far, so good.  The UAC consent pops up on vista, and then the files end 
up in their correct location.

Then it's time to run the CEAPPMGR command to load the files onto the 
device.

I tried deferred actions, etc, but to no avail.

First the solution so far, then the questions at the bottom:


In the end I had to resort to this:
    <InstallExecuteSequence>
      <Custom Action='RegisterWithDevice' After="InstallFinalize">NOT 
Installed </Custom>
    </InstallExecuteSequence>

    <CustomAction Id="RegisterWithDevice" ExeCommand='"[CEAPPMGR]" 
"[INSTALLLOCATION]DudeF.ini"'
                  Directory="INSTALLLOCATION" Return="ignore"/>

Unfortunately, this only works if you're running as an administrator, and if 
you set
<Property Id="ALLUSERS" Value="1"></Property>

************
My Questions:
************
CEAPPMGR seems to require it to be run with admin privileges.  I've already 
specified that the msi file run elevated, but the actions seem to run as the 
user, or in the namespace of the administrator, which still causes the 
program not to be installed for the current user.

Is there a better way around this?  Do I need to build a special EXE to run 
that does the dirty work, which requests the elevation in its manifest 
instead.

Secondly, is there a really good description anywhere of what the difference 
between per user and per machine installs actually is?  When I ran the 
install from an elevated command prompt, it installed on my device, but then 
when I next started the app manager on my account, it tried to install the 
software again.  (not sure why).

Clearly, this isn't quite right either.

I've gotten in such a mess trying to get this simple thing right so that 
it's easy for my users to do.  I've filled up my system restore log, and 
lost all prior install points except for the last 20 or so, which are all 
installing and uninstalling this.

To make matters worse, it then decided it wouldn't uninstall, and I had to 
resort to a rollback, which caused some other installers to be abandoned.

I'm starting to wonder if I should go back to the old procedural way of 
doing things, and copy the cab file into the right location, then run 
CEAPPMGR.

Anthony Wieser
Wieser Software Ltd




-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to