Question to MSDN CF-FAQ's "3.1. How do I create a PocketPC setup application?"

G

Guest

Hello NG!

I've created a Setup-project for my PPC-application like it is described in
the MSDN CF-FAQ's "3.1. How do I create a PocketPC setup application?".

Now I'm wondering if this Installer detects, which processor the connected
device has and which CAB (included in the msi-file) has to be executed on
the device?

I'v created a setup with the CAB's for MIPS and SH3 (only), connected to an
ARM-device and the setup runs without any error.

How does it work?

Thanks, D.Barisch
 
J

Jonathan Wells [msft]

Hi Daniel,

Checkout this old but still very relevant article in the MSDN library:
http://msdn.microsoft.com/library/en-us/dnce21/html/appin21.asp

The CabWiz .inf file enables the creation of platform specific cab files
through the use of platform labels and the CEDevice key. For more info on
the CEDevice key see:
http://msdn.microsoft.com/library/en-us/wcepb40/html/pbrefCEDevice.asp

The platform labels tell CabWiz how many .cab files to generate, where to
get the CPU-specific binary files, and the platform information to
incorporate into the .cab file. The Application Manager uses this
information to determine the appropriate .cab file to install on the end
user's device.

Platform labels are unique labels that are appended to specific sections in
the CabWiz .inf file, for example, HPC_SH3, PPC_MIPS, or HPCPRO_ARM. The
CEDevice section differentiates the platforms, which allows for
device-specific information, the processor type, the device types, Handheld
PC or Palm-size PC support, and the Windows CE version support. These
platform labels also need to be specified in the command-line parameters
when invoking CabWiz.

In the case of the .inf from the sample pointed to by the FAQ "3.1. How do I
create a PocketPC setup application?" there are no platform specific labels.
Inspection of the BuildCab.bat file shows that CabWiz is being called with
these parameters "/cpu ARMV4 ARM SH3 MIPS X86 WCE420X86" among others - this
is what causes the multiple CABs to be built. Since the .inf doesn't contain
any platform specific labels every CAB produced is identical and is platform
agnostic; since it contains only a managed binary.

The Application Manager (CEAppMgr) inspects the cabs listed in the ini file
and uses the first CAB that it finds that supports the target platform.
Again the supported (or more accurately unsupported) platform information is
baked into the cab itself.

When deploying purely managed assemblies (exe, dlls) to devices you really
need only one CAB file.

HTHs cheers jono

--
Jonathan Wells
Product Manager
..NET Compact Framework
Check out the .NET Compact Framework FAQ at:
http://msdn.microsoft.com/mobility/prodtechinfo/devtools/netcf/FAQ/default.aspx

This posting is provided "AS IS" with no warranties, and confers no rights.
 
G

Guest

Thank you!!!
(CEAppMgr) inspects the cabs listed in the ini file
ini file = Setup.INI ?
When deploying purely managed assemblies (exe, dlls) to devices you really
need only one CAB file.

So more than one CAB-file only was necessary if i would develop with eVB/eVC
but not with the CF?
But I thought somewhere I 've read, that there is some kind of
plattform-specific code within the CAB, that controls the
installation-process on the device. Or is that completly managed by the
ApplcationManager (copying the CAB and calling the wceload.exe)?

Thanks, D.Barisch
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top