Can't deploy OpenNETCF Smart Device Framework

T

Terry Westley

Summary: I successfully developed and ran a program that uses OpenNETCF
Smart Device Framework when deploying to emulator or a device from Visual
Studio .Net 2003 Pro, but it doesn't work when I attempt to install SDF
myself from a CAB file.

Details:
Developed a program (let's call it MyApp, for short) that uses the OpenNETCF
Smart Device Framework. Everything worked fine when running the program by
deploying it from within Visual Studio .Net 2003 Pro either to emulator or
my device.

Obviously, I now need to build an installer, so that users don't have to
install VS.NET to run MyApp.

I built an installer using the Microsoft recommended method
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/
html/netcfdeployment.asp). MyApp installs from the .msi and runs
successfully. Note that OpenNETCF SDF is still installed on my device.

OK. Now, I experiment with what users will experience. They may not have
SDF installed on their PPC. I start by removing SDF from my PPC using the
ActiveSync Add/Remove capability. I run MyApp again and get
"MissingMethodException." No surprise; I just removed SDF.

However, no matter what I do now, I always get the MissingMethod Exception.

I've tried installed the ARM and ARMV4 cab SDF cab files before *and* after
reinstalling MyApp. Still MissingMethodException.

I've tried removing and reinstalling SDF on my desktop (well, actually, it's
a laptop) computer. Still MissingMethodException.

I've tried deploying MyApp from VS.NET. Now, that doesn't work anymore and
gets MissingMethodException!

Now, I'm really stuck. *Nothing* works. Questions:

1) How do I at least restore the situation where I can run from VS.NET?
Must be some registry or gac clean-up that needs to be done on the PPC, but
I don't know what.

2) How do I deploy OpenNETCF Smart Device Framework? I can't find any help
on www.opennetcf.org. All the newbies in the forums there seem just as
clueless as me and the MVPs must be very busy because they don't appear to
be answering. There appears to be no redistributable package as there is
for Compact Framework.

--Terry
 
T

Terry Westley

Terry Westley said:
Summary: I successfully developed and ran a program that uses OpenNETCF
Smart Device Framework when deploying to emulator or a device from Visual
Studio .Net 2003 Pro, but it doesn't work when I attempt to install SDF
myself from a CAB file.

It figures that after working on this for over a week, then posting this message, I got it all
working last night. Hooray!!!
Details:
Developed a program (let's call it MyApp, for short) that uses the OpenNETCF
Smart Device Framework. Everything worked fine when running the program by
deploying it from within Visual Studio .Net 2003 Pro either to emulator or
my device.

Obviously, I now need to build an installer, so that users don't have to
install VS.NET to run MyApp.

I built an installer using the Microsoft recommended method
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/
html/netcfdeployment.asp). MyApp installs from the .msi and runs
successfully. Note that OpenNETCF SDF is still installed on my device.

I built a similar installer for SDF along the lines suggested above. This SDF installer
solution included only two projects, the custom installer project and the setup project. No
need for an application project. The setup.ini file (and the project) referenced all the
OpenNETCF cab files.
OK. Now, I experiment with what users will experience. They may not have
SDF installed on their PPC. I start by removing SDF from my PPC using the
ActiveSync Add/Remove capability. I run MyApp again and get
"MissingMethodException." No surprise; I just removed SDF.

However, no matter what I do now, I always get the MissingMethod Exception.

I've tried installed the ARM and ARMV4 cab SDF cab files before *and* after
reinstalling MyApp. Still MissingMethodException.

My mistake was that I was using the ARM and ARMV4 cab files under the wce300 directory and
should have been using the ones in wce400. I didn't realize that's what my Pocket PC required.
There were no error message when installing the wce300 cab files, only when running MyApp.
I've tried removing and reinstalling SDF on my desktop (well, actually, it's
a laptop) computer. Still MissingMethodException.

Unrelated to solving the problem; just wishful thinking...
I've tried deploying MyApp from VS.NET. Now, that doesn't work anymore and
gets MissingMethodException!

Because I didn't reinstall SDF properly (see above)
Now, I'm really stuck. *Nothing* works. Questions:

1) How do I at least restore the situation where I can run from VS.NET?
Must be some registry or gac clean-up that needs to be done on the PPC, but
I don't know what.

Downloaded a Pocket PC registry editor. Look out, I've never even edited the registry on my
desktop PC! I searched for *all* references to opennetcf (not case sensitive) and deleted them
all. Then, I tried deploying MyApp from VS.NET to the device. Success! VS.NET installed SDF
and everything worked.

This is when I first noticed that VS.NET was installing the wce400 cab file, not the wce300,
Some of us are thicker than others.
2) How do I deploy OpenNETCF Smart Device Framework? I can't find any help
on www.opennetcf.org. All the newbies in the forums there seem just as
clueless as me and the MVPs must be very busy because they don't appear to
be answering. There appears to be no redistributable package as there is
for Compact Framework.

I built an SDF installer (see above) in a separate solution. Once I discovered that I should
have been using SDF cab files from wce400, I included *all* the SDF cab files from the wce300
and wce400 directories in this installer. I hadn't really noticed that there were cab files in
the wce400 directory. Bingo. Now it works.

Moving on to installing on someone else's device (it better work right now):

1) Installed Compact Framework from Microsoft redistributable installer
2) Installed OpenNETCF Smart Device Framework from the installer I created
3) Installed MyApp from the installer I created

Wow, it works!

--Terry
 

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