Deploying OpenNetCF.org Smart Device Framework

M

Mark Pitman

I have built an installer for my application that installs the Compact
Framework, the OpenNETCF.org Smart Device Framework and then my application.

When it comes time for my app to get installed, CE Setup complains that my
app "... requires the installation of OpenNETCF.SDF.ppc3.ARM.CAB for it to
run properly. Install the Cab file before running this application. However,
my installer has already installed it, so I am guessing that I am not
installing all the necessary cabs or I am installing the wrong one. I
thought maybe I could just ignore the warning, but when I try to run the
app, it fails trying to load one of the SDF assemblies. My ini file for the
install of the SDF looks like this:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles = OpenNETCF.SDF.PPC3.ARM.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

and when it runs, it seems to copy files and even shows up in the "Remove
Programs" application on the device. Am I installing the wrong cab? What do
I need to do to distribute my app without making the user go download the
SDF and install it separately?

Mark
 
P

Peter Foot [MVP]

Which of the libraries fails when you load the application? When did you
download the SDF package. When first released there was an issue with one of
the libraries was not strong-named and hence did not install into the Global
Application Cache (GAC) on the device, this was fixed within a couple of
days of release. You may need to download and reinstall the SDF to ensure
you have the fixed version:-
www.opennetcf.org/sdf/

Peter
 
M

Mark Pitman

The error I get is:

TypeLoadException
Could not load type
OpenNETCF.Win32.RegistryKey from assembly OpenNETCF, Version=1.0.2904.0,
Culture=neutral, PublicKeyToken=30C767B29D52D6E6.

I have the latest version, the cab file is dated 2/20/2004. When I initially
installed SDF using the installer that came with it, it worked fine. Now I
am trying to build an installer for my app that will work for people who
don't already have it installed, so I uninstalled SDF from my PDA to test my
installer.

m


Peter Foot said:
Which of the libraries fails when you load the application? When did you
download the SDF package. When first released there was an issue with one of
the libraries was not strong-named and hence did not install into the Global
Application Cache (GAC) on the device, this was fixed within a couple of
days of release. You may need to download and reinstall the SDF to ensure
you have the fixed version:-
www.opennetcf.org/sdf/

Peter

--
Peter Foot
Windows Embedded MVP
OpenNETCF.org Senior Advisor
www.inthehand.com | www.opennetcf.org

Mark Pitman said:
I have built an installer for my application that installs the Compact
Framework, the OpenNETCF.org Smart Device Framework and then my
application.

When it comes time for my app to get installed, CE Setup complains that my
app "... requires the installation of OpenNETCF.SDF.ppc3.ARM.CAB for it to
run properly. Install the Cab file before running this application.
However,
my installer has already installed it, so I am guessing that I am not
installing all the necessary cabs or I am installing the wrong one. I
thought maybe I could just ignore the warning, but when I try to run the
app, it fails trying to load one of the SDF assemblies. My ini file for
the
install of the SDF looks like this:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles = OpenNETCF.SDF.PPC3.ARM.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

and when it runs, it seems to copy files and even shows up in the "Remove
Programs" application on the device. Am I installing the wrong cab? What
do
I need to do to distribute my app without making the user go download the
SDF and install it separately?

Mark
 
P

Peter Foot [MVP]

Have you tried a soft-reset following the removal of the SDF from the
device?

Peter

--
Peter Foot
Windows Embedded MVP
OpenNETCF.org Senior Advisor
www.inthehand.com | www.opennetcf.org

Mark Pitman said:
The error I get is:

TypeLoadException
Could not load type
OpenNETCF.Win32.RegistryKey from assembly OpenNETCF, Version=1.0.2904.0,
Culture=neutral, PublicKeyToken=30C767B29D52D6E6.

I have the latest version, the cab file is dated 2/20/2004. When I
initially
installed SDF using the installer that came with it, it worked fine. Now I
am trying to build an installer for my app that will work for people who
don't already have it installed, so I uninstalled SDF from my PDA to test
my
installer.

m


Peter Foot said:
Which of the libraries fails when you load the application? When did you
download the SDF package. When first released there was an issue with one of
the libraries was not strong-named and hence did not install into the Global
Application Cache (GAC) on the device, this was fixed within a couple of
days of release. You may need to download and reinstall the SDF to ensure
you have the fixed version:-
www.opennetcf.org/sdf/

Peter

--
Peter Foot
Windows Embedded MVP
OpenNETCF.org Senior Advisor
www.inthehand.com | www.opennetcf.org

Mark Pitman said:
I have built an installer for my application that installs the Compact
Framework, the OpenNETCF.org Smart Device Framework and then my
application.

When it comes time for my app to get installed, CE Setup complains that my
app "... requires the installation of OpenNETCF.SDF.ppc3.ARM.CAB for it to
run properly. Install the Cab file before running this application.
However,
my installer has already installed it, so I am guessing that I am not
installing all the necessary cabs or I am installing the wrong one. I
thought maybe I could just ignore the warning, but when I try to run
the
app, it fails trying to load one of the SDF assemblies. My ini file for
the
install of the SDF looks like this:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles = OpenNETCF.SDF.PPC3.ARM.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

and when it runs, it seems to copy files and even shows up in the "Remove
Programs" application on the device. Am I installing the wrong cab?
What
do
I need to do to distribute my app without making the user go download the
SDF and install it separately?

Mark
 
M

Mark Pitman

Yes, I did reset the device after removing the SDF.
By the way, thanks for taking the time to work through this with me!

m
Peter Foot said:
Have you tried a soft-reset following the removal of the SDF from the
device?

Peter

--
Peter Foot
Windows Embedded MVP
OpenNETCF.org Senior Advisor
www.inthehand.com | www.opennetcf.org

Mark Pitman said:
The error I get is:

TypeLoadException
Could not load type
OpenNETCF.Win32.RegistryKey from assembly OpenNETCF, Version=1.0.2904.0,
Culture=neutral, PublicKeyToken=30C767B29D52D6E6.

I have the latest version, the cab file is dated 2/20/2004. When I
initially
installed SDF using the installer that came with it, it worked fine. Now I
am trying to build an installer for my app that will work for people who
don't already have it installed, so I uninstalled SDF from my PDA to test
my
installer.

m


Peter Foot said:
Which of the libraries fails when you load the application? When did you
download the SDF package. When first released there was an issue with
one
of
the libraries was not strong-named and hence did not install into the Global
Application Cache (GAC) on the device, this was fixed within a couple of
days of release. You may need to download and reinstall the SDF to ensure
you have the fixed version:-
www.opennetcf.org/sdf/

Peter

--
Peter Foot
Windows Embedded MVP
OpenNETCF.org Senior Advisor
www.inthehand.com | www.opennetcf.org

I have built an installer for my application that installs the Compact
Framework, the OpenNETCF.org Smart Device Framework and then my
application.

When it comes time for my app to get installed, CE Setup complains
that
my
app "... requires the installation of OpenNETCF.SDF.ppc3.ARM.CAB for
it
to
run properly. Install the Cab file before running this application.
However,
my installer has already installed it, so I am guessing that I am not
installing all the necessary cabs or I am installing the wrong one. I
thought maybe I could just ignore the warning, but when I try to run
the
app, it fails trying to load one of the SDF assemblies. My ini file for
the
install of the SDF looks like this:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles = OpenNETCF.SDF.PPC3.ARM.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

and when it runs, it seems to copy files and even shows up in the "Remove
Programs" application on the device. Am I installing the wrong cab?
What
do
I need to do to distribute my app without making the user go download the
SDF and install it separately?

Mark
 
T

Terry Westley

Mark Pitman said:
I have built an installer for my application that installs the Compact
Framework, the OpenNETCF.org Smart Device Framework and then my application.

When it comes time for my app to get installed, CE Setup complains that my
app "... requires the installation of OpenNETCF.SDF.ppc3.ARM.CAB for it to
run properly. Install the Cab file before running this application. However,
my installer has already installed it, so I am guessing that I am not
installing all the necessary cabs or I am installing the wrong one. I
thought maybe I could just ignore the warning, but when I try to run the
app, it fails trying to load one of the SDF assemblies. My ini file for the
install of the SDF looks like this:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles = OpenNETCF.SDF.PPC3.ARM.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

Looks as though you've only added the wce300 cab files to your setup.ini. Try adding the wce400
cab files as well. This is exactly the error messge I was getting and I learned later that it
was leading me astray by referencing the wce300 cab file name for the ARM cab, not the wce400.
My device actually required the ARM cab file in the wce400 directory.

--Terry
 
M

Mark Pitman

Thanks for the info. I'll try that this weekend and let you know my results!

m

Terry Westley said:
I have built an installer for my application that installs the Compact
Framework, the OpenNETCF.org Smart Device Framework and then my application.

When it comes time for my app to get installed, CE Setup complains that my
app "... requires the installation of OpenNETCF.SDF.ppc3.ARM.CAB for it to
run properly. Install the Cab file before running this application. However,
my installer has already installed it, so I am guessing that I am not
installing all the necessary cabs or I am installing the wrong one. I
thought maybe I could just ignore the warning, but when I try to run the
app, it fails trying to load one of the SDF assemblies. My ini file for the
install of the SDF looks like this:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles = OpenNETCF.SDF.PPC3.ARM.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

Looks as though you've only added the wce300 cab files to your setup.ini. Try adding the wce400
cab files as well. This is exactly the error messge I was getting and I learned later that it
was leading me astray by referencing the wce300 cab file name for the ARM cab, not the wce400.
My device actually required the ARM cab file in the wce400 directory.

--Terry
 
M

Mark Pitman

Well, I modified the ini file to look like so:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles =
OpenNETCF_WCE4.ARMV4T.CAB,OpenNETCF.SDF.WCE4.ARMV4.CAB,OpenNETCF.SDF.PPC3.AR
M.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

Still get that warning.

m

Mark Pitman said:
Thanks for the info. I'll try that this weekend and let you know my results!

m

that
it
for
the
install of the SDF looks like this:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles = OpenNETCF.SDF.PPC3.ARM.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

Looks as though you've only added the wce300 cab files to your
setup.ini.
Try adding the wce400
cab files as well. This is exactly the error messge I was getting and I learned later that it
was leading me astray by referencing the wce300 cab file name for the
ARM
cab, not the wce400.
My device actually required the ARM cab file in the wce400 directory.

--Terry
 
J

Jon Skeet [C# MVP]

Mark Pitman said:
Well, I modified the ini file to look like so:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles =
OpenNETCF_WCE4.ARMV4T.CAB,OpenNETCF.SDF.WCE4.ARMV4.CAB,OpenNETCF.SDF.PPC3.AR
M.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

Still get that warning.

You coudl just bundle the DLLs you need in the same directory as the
application. I've used that approach, and to be honest I think it's a
lot simpler than properly installing OpenNETCF - at least if you've
only got one application which needs it.
 
M

Mark Pitman

I did try that, and my app works ok, I just get that warning when my app
installs that you need to also install the SDF. Any ideas on how to remove
that warning?

m

Jon Skeet said:
Mark Pitman said:
Well, I modified the ini file to look like so:

[CEAppManager]
Version = 1.0
Component = OpenNetCF

[OpenNetCF]
Description = OpenNetCF
Uninstall = OpenNetCF
CabFiles =
OpenNETCF_WCE4.ARMV4T.CAB,OpenNETCF.SDF.WCE4.ARMV4.CAB,OpenNETCF.SDF.PPC3.AR
M.CAB,OpenNETCF.SDF.PPC3.ARMV4.CAB

Still get that warning.

You coudl just bundle the DLLs you need in the same directory as the
application. I've used that approach, and to be honest I think it's a
lot simpler than properly installing OpenNETCF - at least if you've
only got one application which needs it.
 
J

Jon Skeet [C# MVP]

Mark Pitman said:
I did try that, and my app works ok, I just get that warning when my app
installs that you need to also install the SDF. Any ideas on how to remove
that warning?

Yup - uninstall the SDF from your desktop, after copying the DLLs to
somewhere else for safe-keeping. Then when you add a reference to the
DLL in your project, you'll need to browse for it - but it won't think
it's part of anything else, it's just another library.
 
M

Mark Pitman

I see you do your evil work late at night too :)

That makes sense; I'll do that from now on. Seems much easier to manage!

m
 
D

DotNetJunkies User

Hi Mark,
I am experiencing the exact same problem!

Scenario:
1. Hard reset PPC2002 device.
2. Debug my app on the device thru VS.NET2003. This deploys OpenNETCF.SDF.ppc3.ARM.CAB and installs it. The date of the cab file is 2/20/2004. I re-downloaded it yesterday just to make sure I had the latest.
3. My app works correctly.
4. Remove opennetcf from device.
5. Deploy my app using VS.NET.
6. Now running my app gets error:
TypeLoadException
Could not load type OpenNETCF.Drawing.ContentAlignment from assembly OpenNETCF.Drawing, Version=1.0.2904.0, Culture=neutral, PublicKeyToken=30C767B29D52D6E6

Now the only way to fix the problem is to hard reset the device again. Soft reset does not fix the problem. Ouch!

I also discovered this problem when I was trying to include OpenNETCF in my installer.

Let me know if you discover anything.
Regards,
Bill Albert
ObTech Corp.
(e-mail address removed)
 

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