Multiple cab files and the .ini file


R

RobertH

I have searched Goggle, MSDN and live.com for how to deploy multiple cab
files at a shot using the .ini file to specify each. I have tried many
downloaded examples, along with my own application and all that ever happens
is that it installs the first cab, and that is all. All the documentation
says to provide a comma separated list, with no spaces, and CeAppMgr will
deploy each one, however it does not happen that way.

Here is an example:

[CEAppManager]
Version = 1.0
Component = MyApp

[MyApp]
Description = MyApp
CabFiles=MyApp.CAB,NETCFv2.wm.armv4i.cab,System_SR_ENU_wm.cab,symbol.all.arm.cab

Anyone know how to accomplish this?

Thanks in advance for your help.
 
Ad

Advertisements

I

Ilya Tumanov [MS]

List of CABs in INI is for different CPUs/OSs, not for different products.
Only one CAB would be selected from the list and installed, not _each_ one.

You'd need to use 3 INI files, one per product. Each product can have
multiple CABs listed for different CPUs/OS.


Best regards,

Ilya

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

*** Want to find answers instantly? Here's how... ***

1. Go to
http://groups-beta.google.com/group/microsoft.public.dotnet.framework.compactframework?hl=en
2. Type your question in the text box near "Search this group" button.
3. Hit "Search this group" button.
4. Read answer(s).
 
S

scottelloco

No need to write a custom installer to install multiple cab files
using CEAppMgr. CEAppMgr can take multiple ini files as arguments:

Example: CEAppMgr.exe "install.ini",
"install2.ini", ...arg3..., ...arg4... etc.

In C++ one way to do it would be like this:

_wspawnl(_P_WAIT, strActiveSyncPath, _T("App1"), _T("App2"),
"install_App1.ini", "install_App2.ini", NULL);

where _T("App1") and _T("App2") are whatever you labeled the sections
you specified in your two .ini files.

Your two .ini files would look like this:

install_App1.ini:
----------------------

[ceAppManager]
Version = 1.0
Component = App1


[App1]
Description = App1 Application
Uninstall = App1
CabFiles = App1.cab


install_App2.ini:
-----------------------

[ceAppManager]
Version = 1.0
Component = App2


[App1]
Description = App2 Application
Uninstall = App2
CabFiles = App2.cab


-Scott

The problem with this type of installer as with many others on the market is
that fact that you have to ship different setup applications for each flavour
of OS you plan to target.

Simon.

JamesFielding said:
Hi Robert,
Unless you fancy writing your own autorun.exe file for your
device, you should have a look at "PocketPC Installer" here:
http://www.pocketpcinstaller.com
In a nutshell, you drag'n'drop your .cab files into this
program, and it compresses them into one .exe installer
file.
Run this file on your PC, and it'll install the .cab files,
one-by-one on your device.
It *also* creates a compressed installer .exe which
you can run on your device, which does the same
thing. So you have two ways of installing your set of
.cab files onto your device in one go.

I have searched Goggle, MSDN and live.com for how to deploy multiple cab
files at a shot using the .ini file to specify each. I have tried many
downloaded examples, along with my own application and all that ever happens
is that it installs the first cab, and that is all. All the documentation
says to provide a comma separated list, with no spaces, and CeAppMgr will
deploy each one, however it does not happen that way.
Here is an example:
[CEAppManager]
Version = 1.0
Component = MyApp
[MyApp]
Description = MyApp
CabFiles=MyApp.CAB,NETCFv2.wm.armv4i.cab,System_SR_ENU_wm.cab,symbol.all.arm.cab
Anyone know how to accomplish this?
Thanks in advance for your help.
 
S

scottelloco

Btw, strActiveSyncPath in the above example is the path the
ActiveSync's CEAppMgr, which is usually "\Program Files\Microsoft
ActiveSync\CEAPPMGR.EXE"


_wspawnl(_P_WAIT, strActiveSyncPath, _T("App1"), _T("App2"),
"install_App1.ini", "install_App2.ini", NULL);

No need to write a custom installer to install multiple cab files
using CEAppMgr. CEAppMgr can take multiple ini files as arguments:

Example: CEAppMgr.exe "install.ini",
"install2.ini", ...arg3..., ...arg4... etc.

In C++ one way to do it would be like this:

_wspawnl(_P_WAIT, strActiveSyncPath, _T("App1"), _T("App2"),
"install_App1.ini", "install_App2.ini", NULL);

where _T("App1") and _T("App2") are whatever you labeled the sections
you specified in your two .ini files.

Your two .ini files would look like this:

install_App1.ini:
----------------------

[ceAppManager]
Version = 1.0
Component = App1

[App1]
Description = App1 Application
Uninstall = App1
CabFiles = App1.cab

install_App2.ini:
-----------------------

[ceAppManager]
Version = 1.0
Component = App2

[App1]
Description = App2 Application
Uninstall = App2
CabFiles = App2.cab

-Scott

The problem with this type of installer as with many others on the market is
that fact that you have to ship different setup applications for each flavour
of OS you plan to target.

Hi Robert,
Unless you fancy writing your own autorun.exe file for your
device, you should have a look at "PocketPC Installer" here:
http://www.pocketpcinstaller.com
In a nutshell, you drag'n'drop your .cab files into this
program, and it compresses them into one .exe installer
file.
Run this file on your PC, and it'll install the .cab files,
one-by-one on your device.
It *also* creates a compressed installer .exe which
you can run on your device, which does the same
thing. So you have two ways of installing your set of
.cab files onto your device in one go.
James
:
I have searched Goggle, MSDN and live.com for how to deploy multiple cab
files at a shot using the .ini file to specify each. I have tried many
downloaded examples, along with my own application and all that ever happens
is that it installs the first cab, and that is all. All the documentation
says to provide a comma separated list, with no spaces, and CeAppMgr will
deploy each one, however it does not happen that way.
Here is an example:
[CEAppManager]
Version = 1.0
Component = MyApp
[MyApp]
Description = MyApp
CabFiles=MyApp.CAB,NETCFv2.wm.armv4i.cab,System_SR_ENU_wm.cab,symbol.all.arm.cab
Anyone know how to accomplish this?
Thanks in advance for your help.
 
Ad

Advertisements

S

scottelloco

Whoops... and that 2nd ini file should look like this:

install_App2.ini:
-----------------------

[ceAppManager]
Version = 1.0
Component = App2

[App2]
Description = App2 Application
Uninstall = App2
CabFiles = App2.cab



Btw, strActiveSyncPath in the above example is the path the
ActiveSync's CEAppMgr, which is usually "\Program Files\Microsoft
ActiveSync\CEAPPMGR.EXE"

_wspawnl(_P_WAIT, strActiveSyncPath, _T("App1"), _T("App2"),
"install_App1.ini", "install_App2.ini", NULL);

No need to write a custom installer to install multiple cab files
using CEAppMgr. CEAppMgr can take multiple ini files as arguments:
Example: CEAppMgr.exe "install.ini",
"install2.ini", ...arg3..., ...arg4... etc.
In C++ one way to do it would be like this:
_wspawnl(_P_WAIT, strActiveSyncPath, _T("App1"), _T("App2"),
"install_App1.ini", "install_App2.ini", NULL);
where _T("App1") and _T("App2") are whatever you labeled the sections
you specified in your two .ini files.
Your two .ini files would look like this:
install_App1.ini:
----------------------

[ceAppManager]
Version = 1.0
Component = App1
[App1]
Description = App1 Application
Uninstall = App1
CabFiles = App1.cab
install_App2.ini:
-----------------------

[ceAppManager]
Version = 1.0
Component = App2
[App1]
Description = App2 Application
Uninstall = App2
CabFiles = App2.cab

The problem with this type of installer as with many others on the market is
that fact that you have to ship different setup applications for each flavour
of OS you plan to target.
Simon.
:
Hi Robert,
Unless you fancy writing your own autorun.exe file for your
device, you should have a look at "PocketPC Installer" here:
http://www.pocketpcinstaller.com
In a nutshell, you drag'n'drop your .cab files into this
program, and it compresses them into one .exe installer
file.
Run this file on your PC, and it'll install the .cab files,
one-by-one on your device.
It *also* creates a compressed installer .exe which
you can run on your device, which does the same
thing. So you have two ways of installing your set of
.cab files onto your device in one go.
James
:
I have searched Goggle, MSDN and live.com for how to deploy multiple cab
files at a shot using the .ini file to specify each. I have tried many
downloaded examples, along with my own application and all that ever happens
is that it installs the first cab, and that is all. All the documentation
says to provide a comma separated list, with no spaces, and CeAppMgr will
deploy each one, however it does not happen that way.
Here is an example:
[CEAppManager]
Version = 1.0
Component = MyApp
[MyApp]
Description = MyApp
CabFiles=MyApp.CAB,NETCFv2.wm.armv4i.cab,System_SR_ENU_wm.cab,symbol.all.arm.cab
Anyone know how to accomplish this?
Thanks in advance for your help.
 

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