Installation Questions

M

Myron Marston

I've got a number of installation questions. Forgive me if these have
already been asked on here (as I'm sure they have), but I've been
searching the archives and have only managed to get myself more
confused. Feel free to point me to previous threads if they definitely
answer the question.

1. Why are different CAB files created for each different processor
for my .NET app if .NET compiles to MSIL? I thought the point of MSIL
was that it wasn't for a specific processor. Are the dlls inside of
the CABs any different?

2. I would like to create a single installation/setup app that works
for multiple processors, and if possible, I would like it to be
downloaded remotly on to the device and run on there. I've read about
creating the msi to run from the desktop at
http://www.codeproject.com/netcf/PackagingAndDeployingPPC.asp and
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/netcfdeployment.asp.
I'd like to do something similar, but have it run on the device
itself. Our customers will have the devices on WiFi and will be able
to browse to the network location where this setup file will be. What
are my options for this?

3. I would also like to include an auto-update feature in my app, so
that when we release updates to the product, our customers can push it
to their MasterClient location, and from their the app would pick it up
automatically. I've read a couple of articles about this, including
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/AutoUpdater.asp
and
http://msdn.microsoft.com/library/d...y/en-us/dnnetcomp/html/DeploymentPatterns.asp.
One piece I'm still confused about (that is related to question #1) is
whether I need to download the appropriate cab file everytime I
auto-update or if I can download individual dlls.

I'll likely have more questions later, but there they are for now....


Thanks,
Myron Marston
 
I

Ilya Tumanov [MS]

1. That's because setup DLL (which checks if NETCF installed) is native and
would only work on specific CPU.

2. Yes, you can use single CAB for all CPUs if you do not have any native
components. You would have to remove native setup DLL from the CAB.

3. Since its all custom, you can do it the way you want.



If you need reach setup functionality, like setup wizard on desktop, you can
only do it from setup DLL which is native.

Thus no single CAB is possible.



You might also consider limiting platforms support if possible.

For example, if you choose to support PPC 02 and above, only ARM CAB would
be needed.


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).
 
M

Myron Marston

Ilya, thanks for the quick and helpful response. I think I understand
what you're saying, but just to verify...

1. I've never noticed a setup.DLL before, so I'm trying to figure out
where it is included and used. Is the setup DLL you're referring to
only included in the .NET CF cabs? Or is it also included in the cabs
created for my app?

2. If the .NET CF is already installed, can I just copy the DLL's for
my app to the device and not worry about having different cabs?

3. My app makes some p/invoke calls (to get things like Device ID and
to play sound). Am I correct in assuming this does count as a native
component, since the calls are to CoreDll.dll which is included in the
OS and is itself the native component?

4. You mention ARM works for PPC 2002 and above--does that include the
different versions of Windows Mobile? (I'm still a bit fuzzy on the
relationship between WM and PPC).

5. And something I forgot to ask before--for .NET CF SP 3, does this
need a version of .NET CF already installed on the device, or can I
just have my users install this, regardless of whether they have the CF
on their already?

Thanks!
 
I

Ilya Tumanov [MS]

1. I was talking about CABs created for your application by VS. You would
have to edit INF file to remove default setup DLL. Setup DLL is also present
in NETCF CABs but that you can not change.

2. Sure. However, it's better to create CAB instead of using flat files. If
you have native DLLs, you have to copy DLLs for specific CPU even with flat
files.

3. Correct. Only native DLLs included with your application counts. If you
have none, you can make CPU independent CAB.

4. Basically, WM is a new brand name for PPC and SP. All PPC/WM devices
starting from PPC02 are ARM based, so ARM CAB created by VS for your app
would install on PPC02, 03, 03SE, and upcoming WM 5.0. SP also uses ARM;
however it has different CAB format. You would have to build different CAB
if you'd like to support SP 03 and above.

Also, WM 5.0 and SP might require you to sign CAB and all files in it.

5. CF SP3 can be installed on any supported device regardless if it has CF
already or not.

Note NETCF CABs have both native components built for specific OS version
and setup DLL, so they are CPU and OS version dependent.



Please see this for setup DLL information:



http://msdn.microsoft.com/library/d...v_evtuv/html/etgrfsetupdllfilesfordevices.asp


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).
 
M

Myron Marston

Thanks again, Ilya, you've been a big help. These are (hopefully) my
final questions.

1. We're only targetting PPC 2002 and above, so using just the ARM cab
will work great. However, I'm noticing two ARM cabs--ARM.cab and
ARMV4.cab. Which should I use? What are the compatability and
performance differences in these? Note that we won't be targetting
smart phone at all.

2. To run our app, our customers will be doing a two-part install:
installing a webservice component on a machine running iis and
installing the CF app on the devices. The device app contains an XML
config file specifying the URL of the webservice so that the app can
run against it. This config file will be included in the cab, since it
is compiled as "Content" from VS. During the installation of the
webservice, is there a way to get at and update the config file
contained in the cab, so that it will be correct when users install the
app on the device? If not, what are my other options?

3. Concerning the .NET CF SP 3, how do I make sure the Setup.DLL
included in the cab installs that, rather than the intial RTM .NET CF?

Thanks so much!
 
I

Ilya Tumanov [MS]

1. The difference is in setup DLL which is compiled for CE3 in ARM CAB and
CE4 in ARMV4 CAB.

Managed binaries are the same in both. You should use ARM CAB as CE3 setup
DLL would run on CE4, but CE4 dll might have problems running on CE3.

Most likely there's no difference at all since default setup DLL is very
simple and probably uses CE3 APIs only.



2. Not really. You can build CAB files on fly at installation time or
install configuration file separately.



3. Default setup DLL included in your CAB won't install anything; it just
checks if whatever version of NETCF is installed, that's all.

You have to install NETCF SP3 CAB separately. Download developer redist of
SP3 which allows you to redistribute NETCF CABs.

Note while NETCF PPC02 and PPC03 CABs are both ARM, they are different as
NETCF contains native components dependent on OS version.

While your managed application can be CPU and OS version independent, NETCF
itself can not.


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).
 

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