Windows Mobile Cab d'Installation à détecter .NET CF 3.5 et l'Installer
J'ai développé de windows mobile 6 professionnel demande d'aide ciblée dans le cadre .NET CF 3.5 et professionnel 6 SDK. En outre créé sa SmartDeviceCab fichier. Quand je l'installer sur l'appareil n'ayant pas de CF 3.5 il ne parvient pas à exécuter mon application (car l'appareil .NET CF 2.0).
Maintenant, je sais que je dois avoir NET CF 3.5 sur l'appareil à un endroit où je veux exécuter mon application.
Comment puis-je détecte la version actuelle du CF et de l'installer(si nécessaire) CF 3.5 de ma cabine de l'installation. J'ai exploré et traversé beaucoup sur Setup.dll mais c'est trop vieux, et je n'ai pas trouver de moyen pour exécuter le fichier cab de mon Setup.dll. S'il vous plaît aidez-moi à trouver la solution. Serions reconnaissants si le lien/exemple de code fourni. De plus frustrant est, je n'ai jamais touché de VC++.
Je suis passé par:
Détecter si le Compact Framewok est installé sur l'appareil mobile et de ses liens.
Shailesh K.
OriginalL'auteur engineer | 2009-07-13
Vous devez vous connecter pour publier un commentaire.
Très simple. Il a un peu de code C++, mais vous n'avez pas à le changer. C'est simplement une question de la création d'un deuxième appareil intelligent cabine projet contenant la .NET fichier cab que vous voulez installer (3.5 dans votre cas), et le remplacement de l'installation de la DLL pour celui qui a été créé à partir du projet C++ inclus dans l'échantillon. Il suffit d'ajouter les valeurs de registre qui décrivent les fichiers cab que vous voulez installer et que vous êtes d'or. Vous n'avez pas besoin de détecter quelle version de .NET ils ont installé, il suffit de jeter là-bas et il va s'installer sur le haut de n'importe quelle installation existante. Il y a un livre blanc qui l'explique dans l'échantillon, ainsi que le code source. Il suffit de télécharger le Windows Mobile 6 SDK et accédez à ce répertoire sur votre ordinateur après l'installation. Ouvrez le document intitulé "MultiCab Whitepaper.doc" et suivez les instructions.
C:\Program Files\Windows Mobile 6 SDK\Samples\Common\RPC\Win32\multicabinstall
J'ai utilisé cela pour mon propre projet et cela fonctionne SI bien!
OriginalL'auteur Dylan Vester
Dans WM 6, je crois (il pourrait avoir été WM 5), ils ont refusé l'exécution d'une cabine dans une autre cabine. La seule façon de le faire en une seule fois grâce à une MSI à partir du bureau. Il y a des exemples MSDN sur la façon d'obtenir commencé.
Ce que je fais dans mon application est de détecter l' .NET version CF dans ma cabine. S'ils n'ont pas le droit, je n'ai pas l'installer et de le dire à l'utilisateur d'installer à partir du bureau. Ce n'est pas la plus grande solution, mais MS n'a pas vraiment nous donner un choix.
J'ai modifié le code fourni dans cet exemple msdn.microsoft.com/en-us/library/aa446531.aspx#netcfdepl_topic3
OriginalL'auteur ageektrapped
Ce n'est pas vraiment une réponse à votre question, mais dans une situation comme cela, j'aurais juste de déployer des deux Cabines: mon application et la .Net CF 3.5 CABINE. Il n'est pas difficile de dire à un client/client pour installer votre application, et si cela ne fonctionne pas, puis installer l' .Net de la cabine.
OriginalL'auteur MusiGenesis
Maintenant Windows Market Place est là-bas, donc nous n'avons pas besoin de prendre soin requis .NET CF versions. Windows Market Place faire le nécessaire. 🙂
OriginalL'auteur engineer
Nous avons utilisé AirSetup pour ce qu'il vous permet de chaîne s'installe et fonctionne vraiment bien et rapide.
http://windowsmobiledn.com/using-spb-airsetup-to-create-pocket-pc-installers/
OriginalL'auteur Jeff Pigott
Merci pour les réponses. C'est vraiment décevant que MS n'a pas de solution simple pour cela. Je voudrais aller avec MusicGenesis pour l'instant. Je peux donner à l'utilisateur deux cabines (1) MyApp.de la cabine (2) NETCFv35.wm.armv4i.de la cabine. Mais je voulais savoir que "NETCFv35.wm.armv4i.cab" va travailler pour tous les appareils. J'ai entendu parler de différents appareils avec différents ensembles d'instructions comme DMU, BRAS, etc. Va NETCFv35.wm.armv4i.cabine de travail pour tous les Windows Mobile 6 Professionnel (et supérieur 6.1, 6.5) ou ce que je dois faire pour prendre soin des autres appareils?
Shailesh K
OriginalL'auteur engineer
Avez-vous utilisé .NET 3.5-spécifique de l'API qui vous empêcherait de ciblage .NET Framework 2.0? Si non (ou si c'est très peu), je considère seulement de ciblage 2.0.
Vous pouvez peut-être surpris de voir combien il est facile de changer la version du Framework que vous ciblez (malheureusement, vous ne pouvez pas simplement aller pour les Propriétés de votre nœud de Projet dans l'Explorateur de solutions, comme vous pouvez le faire avec d'autres types de projet dans Visual Studio). Je suggère de faire un nouveau projet portant sur les Framework 2.0 et la suppression de toutes de votre code source dans, de la compilation, et de voir combien les erreurs que vous avez. L'espoir est que dans environ 5 à 10 minutes, vous avez terminé avec un compilés et application en cours d'exécution, sans plus .NET Framework problèmes de dépendance.
Dans la planification d'une application mobile qui, je l'espère, à écrire, j'ai choisi de rester avec .NET 2.0, car de nombreux appareils ne pas expédier de 3,5 par défaut.
OriginalL'auteur mkmurray
Pour cela, j'ai utilisé les INS. Il a été quelques mois depuis que j'ai écrit le script d'installation, de sorte que certains détails doivent être floue.
J'ai d'abord installer .NET CF 3.5. J'utilise le fichier NETCFSetupv35.msi qui automatiquement va installer le .NET CF 3.5 sur l'appareil mobile s'il n'existe pas déjà. Si .NET CF 3.5 existe déjà, il affiche une boîte de dialogue disant qu'il existe déjà (pour nous, c'est acceptable). Vous pourriez trouver/écrire une application qui permettrait de définir une valeur de retour qui peut être lu par ExecWait (http://nsis.sourceforge.net/Docs/Chapter4.html), et ensuite seulement appeler les msi s' .NET CF n'est pas installé.
Puis j'ai 8 cabines à installer, 3 pour SQL Server Compact 3.5 (), et 4 pour un logiciel dont nous dépendons (en option, selon le client), et 1 pour notre application. J'ai suivi ce tutoriel: http://nsis.sourceforge.net/NSIS_for_Smartphone. A écrit un article pour chacun d'eux, si vous voulez en lecture seule puis ajouter SectionIn 1 RO après la section. Appelez ensuite CeAppMgr passant comme argument de chaque CABINE.
OriginalL'auteur chocojosh