Hi,
I have a set of cab-files that are built for different platforms such as Pocket PC 2003, Smartphone 2003, Windows Mobile 5.0 Pocket PC 2003, and Windows Mobile 5.0 Smartphone 2003. They all have a common ini-file that I pass to CEAPPMGR.
With the help of [CeDevice] and VersionMin and VersionMax I can sort out the first two cab files from the second two.
My problem is that when I connect a device and perform Add/Remove programs I cannot distinguish between the two WM5 platforms. I.e. the same cab is used to install on both platforms. How can I make ActiveSynch pick the correct cab-file
There is an UnsupportedPlatform field in the inf-file. However, I can only find documentation that is 5 years old for verion 2 of WIndows CE...
Regards
Bengt

ceappmgr for multiple platforms
IamManick
You'd need to add [Platform] section, that's the only way (description is on MSDN). Also you would have to use AS 4.0 or above, 3.x will not work in all cases.
zhihao
I really appreciate your help, I finally got it working using your examples.
I figured out the 3.99 as it was still installing the PPC2003 version...
As I understand, the VersionMin and VersionMax are for older version of the CeAppMgr but thanks for the tip!
Regards,
Tom
rickyg
The different files are selected through different sections in the .inf-file that are dependent on the /cpu switch that you give. In my case I use a combination of cpu-name and platform for the /cpu switch. For example:
/cpu WM5_PPC2003_ARMV4 /platform WM5_PPC2003
and in the .inf-file I have sections:
[DefaultInstall.WM5_PPC2003_ARMV4]
CopyFiles=Files00.WM5_PPC2003_ARMV4
[SourceDisksNames.WM5_PPC2003_ARMV4]
2=,"SourceDisk2",,x:\dist\wce\ppc2003armv4
and so on. Hope this helps!
Bengt
Oaf300092
I am trying to find the best way to build an installer for my ce application.
I have a few scenarios in mind, but I cannot seem to figure out if the scenario I am trying
is possible, and if so how to get it working.
One scenario is that I use one .inf file to build for the four different platforms:
PPC2003
PPC2005
SP2003
SP2005
Each platform of course having a different .dll.
And then use the ceappmgr with a .ini file (with the four can files defined) to install
the appropriate cab file on the specific device. In other words, the ceappmgr detects
which .cab file to install...
This requires me, as I understand, to use a combination of the /platform option and the
definition of the Platform tag in the .inf file. However what I cannot seem to grasp is
how can you define which dll to use based on the Platform tag.
Regards,
Tom Rixom
vanu
My platform versions were indeed correct as they were both for Windows Mobile 5. My "Smartphone" string value was also correct.
When I added the /platform switch to the cab-wizard it changed the output filename which I did not notice, so I was testing my original cab the whole time...
Ilya, thank you for your help!
Bengt
Philip Tolk
----------------------------------------------------------
...
[CEDevice]
UnsupportedPlatforms = "HPC","HPC Pro","Jupiter"
ProcessorType = 2577 ; ARM CPU
[Platform.WM5_PPC2003]
PlatformString=PocketPC
PlatformMin=3.0
[Platform.WM5_SP2003]
PlatformString=Smartphone
PlatformMin=3.0
[Platform.WM5_PPC2005]
PlatformString=PocketPC
PlatformMin=4.0
[Platform.WM5_SP2005]
PlatformString=Smartphone
PlatformMin=4.0
[DefaultInstall.WM5_PPC2003_ARMV4]
CopyFiles=Files00.WM5_PPC2003_ARMV4
[DefaultInstall.WM5_SP2003_ARMV4]
CopyFiles=Files00.WM5_SP2003_ARMV4
[DefaultInstall.WM5_PPC2005_ARMV4]
CopyFiles=Files00.WM5_PPC2005_ARMV4
[DefaultInstall.WM5_SP2005_ARMV4]
CopyFiles=Files00.WM5_SP2005_ARMV4
[SourceDisksNames.WM5_PPC2003_ARMV4]
2=,"SourceDisk2",,x:\dist\wce\ppc2003armv4
[SourceDisksNames.WM5_SP2003_ARMV4]
2=,"SourceDisk2",,x:\dist\wce\sp2003armv4
[SourceDisksNames.WM5_PPC2005_ARMV4]
2=,"SourceDisk2",,x:\dist\wce\ppc2005armv4
[SourceDisksNames.WM5_SP2005_ARMV4]
2=,"SourceDisk2",,x:\dist\wce\sp2005armv4
...
----------------------------------------------------------
And the coinciding call from the cabwiz would be:
/cpu WM5_PPC2003_ARMV4 /platform WM5_PPC2003
/cpu WM5_SP2003_ARMV4 /platform WM5_SP2003
/cpu WM5_PPC2005_ARMV4 /platform WM5_PPC2005
/cpu WM5_SP2005_ARMV4 /platform WM5_SP2005
Regards,
T.
Amde
You should add PlatformMax=3.99 to your 2003 entries. In my .inf-file I have also added Windows CE version numbers. I do not know if that is significant or not, it may work with only platform versions. This would look like this with your naming conventions:
[CEDevice.WM5_PPC2003_ARMV4]
VersionMin=3.00
VersionMax=4.99
[CEDevice.WM5_SP2003_ARMV4]
VersionMin=3.00
VersionMax=4.99
[CEDevice.WM5_PPC2005_ARMV4]
VersionMin=5.00
VersionMax=1000
[CEDevice.WM5_SP2005_ARMV4]
VersionMin=5.00
VersionMax=1000
Regards
Bengt
AndyWillig
Thank you for your reply!
I have spent all day trying to get this to work. I have tried all combinations that I have been able to think of, with no success. It keeps installing my Smartphone cab on Pocket PC.
I am using ActiveSync 4.2 and the .cab-wizard from Visual Studio 2005 + SP1.
My platform section looks like this:
[Platform.WM5_PPC2003]
PlatformString=PocketPC
PlatformMin=4.0
[Platform.WM5_SP2003]
PlatformString=Smartphone
PlatformMin=4.0
To the cabwiz I add the /platform WM5_PPC2003 or WM5_SP2003. One thing that I have noted is that the _setup.xml file in the built cab has no platform information. I do not know if it should, but I thought this is what ActiveSync used to pick the correct cab.
Among the the things I have tried are: having a PlatformMax version, adding UnsupportedPlatforms to CEDevice section, and so on.
Any suggestions would be highly appreciated!
Bengt
bevis61
Your platform versions are incorrect (3.0 for WM 2003, 4.0 for WM 5.0 as far as I remember) and PlatformMax is missing. Not sure if it should be "SmartPhone" instead of "Smartphone". The fact you don't have it in XML means it was ignored, probably because of missing PlatformMax. You can look into NETCFv2.ppc.armv4.cab as example.