2009-07-13 18 views
8

私はWindows Mobile 6プロフェッショナルアプリケーションを、.NET CF 3.5およびプロフェッショナル6 SDKとしてターゲットフレームワークを使用して開発しました。 SmartDeviceCabファイルも作成されました。 CF 3.5を搭載していないデバイスにインストールすると、.NET CF 2.0を搭載しているため、アプリケーションを実行できなくなります。 私は、アプリケーションを実行したいデバイスにNET CF 3.5をインストールする必要があることを知りました。 現在のバージョンのCFを検出し、キャブ設定からCF 3.5をインストールするにはどうしたらいいですか?私は探検し、Setup.dllの多くを経験しましたが、その古い方法で、私はSetup.dllからcabファイルを実行する方法を見つけられませんでした。解決策を見つけるのを手伝ってください。リンク/サンプルコードが提供されている場合は感謝します。もっと不満は、私はVC + +に触れたことはありません。.NET CF 3.5を検出してインストールするためのWindows Mobile Cab Setup

私は通りました: Detecting if the Compact Framewok is installed on mobile deviceとそのリンク。 WM 6では

Shailesh K.

答えて

1

、私は(それがWM 5だったかもしれない)と信じて、彼らは別の、キャブ内からタクシーを実行する許可されていません。 1つの方法ですべてを実行する唯一の方法は、デスクトップからのMSIです。それを開始する方法に関するMSDNサンプルがあります。

私のアプリで何をしているのですか?私の運転室の.NET CFバージョンを検出しています。彼らが正しいものを持っていない場合、私はインストールに失敗し、デスクトップからインストールするようにユーザーに指示します。それは最大の解決策ではありませんが、MSは実際に私たちに選択肢を与えません。

+0

こんにちは、返信用 感謝をageektrapped。あなたはあなたのキャブから.NET CFバージョンを検出していると言いました。 .NET CFのバージョンを検出していることを(コード)提供し、それが正しいかどうかチェックできますか?おかげさまで Shailesh K :) – engineer

+0

このサンプルで提供されているコードを変更しました。http://msdn.microsoft.com/en-us/library/aa446531.aspx#netcfdepl_topic3 – ageektrapped

1

これは本当にあなたの質問に対する答えではありませんが、このような状況で私は2つのCABを配備します:私のアプリケーションと.Net CF 3.5 CAB。顧客/クライアントにあなたのアプリをインストールするよう伝えるのは難しくありませんし、それが.Net cabをインストールすることができない場合もあります。

0

返信いただきありがとうございます。 MSにはこれに対する単純な解決策がないことは本当に残念です。私は今MusicGenesisに行くだろう。私はユーザーに2つのキャブを与えることができます(1)MyApp.cab(2)NETCFv35.wm.armv4i.cab。しかし、私は "NETCFv35.wm.armv4i.cab"がすべてのデバイスで動作することを知りたがっています。私は、MISP、ARMなどのような異なる命令セットを持つ異なるデバイスについて聞いた.NetCFv35.wm.armv4i.cabは、すべてのWindows Mobile 6 Professional(およびそれ以上の6.1,6.5)で動作するのだろうか、他のデバイスの世話をするために何をしなければならないだろうか? Shailesh K

+3

いいえ、Armv4はどのプラットフォームでも動作しません。今日最も一般的なCPUです。お客様は.msiパッケージを入手する必要があります。http://www.microsoft.com/downloads/details.aspx?FamilyID=E3821449-3C6B-42F1-9FD9-0041345B3385&displaylang=en –

0

あなたは、.NET 2.0 Frameworkがターゲットからあなたを妨げる任意の.NET 3.5固有のAPIを使用したことがありますか?そうでない場合(またはそれがごくわずかな場合)、2.0をターゲットにすることを検討します。

対象とするフレームワークのバージョンを簡単に変更できるのは驚くかもしれません(残念ながら、ソリューションエクスプローラでプロジェクトノードのプロパティに移動することはできませんが、Visualスタジオ)。私は、2.0 Frameworkをターゲットとした新しいプロジェクトを作成し、ソースコードをすべて削除してコンパイルし、エラーの数を確認することをお勧めします。約5-10分で、.NET Frameworkの依存関係の問題がなくなりコンパイルされた実行中のアプリケーションが完成することが期待されます。

私が書いたがっているモバイルアプリを計画するにあたって、多くのデバイスにはデフォルトで3.5が付属していないため、.NET 2.0を採用することに決めました。

+0

こんにちはmkmurray、 ご返信ありがとうございます。はい、私は以前それを試して、それは私のために働いていた。しかし、これは(永続的な)解決策ではないと私は思う。将来的には、CF 3.5に基づいてアプリを開発する必要がある場合、私はこの時点で立ち往生します。だから将来のWM展開に役立つ恒久的なソリューションを探しています。 Shailesh K. – engineer

1

今ではWindowsマーケットプレイスがあるので、必要な.NET CFバージョンを気にする必要はありません。 Windows Market Placeは必要な処理を行います。 :)

+0

*両方のユーザーが同時にその上にいるときは、WMPがかなり遅くなります。 Haw。 :P – MusiGenesis

3

非常に簡単です。それは少しのC++コードを持っていますが、あなたはそれをまったく変更する必要はありません。インストールする.NET cabファイルを含む2番目のスマートデバイスキャブプロジェクトを作成するだけです(3。5)、サンプルに含まれているC++プロジェクトから作成したもののインストールDLLを入れ替えます。インストールするcabファイルがどこにあるのかを記述するレジストリ値を追加するだけです。インストールされている.NETのバージョンを検出する必要はなく、ただそこにスローするだけで既存のインストールの上にインストールされます。このサンプルで説明されている完全なホワイトペーパーとソースコードがあります。 Windows Mobile 6 SDKをダウンロードしてインストールした後、このディレクトリに移動してください。 「MultiCab Whitepaper.doc」というタイトルの文書を開き、指示に従ってください。

C:\プログラムファイル\のWindows Mobile 6個のSDK \サンプルが\共通\ CPP \ Win32の\ multicabinstall

私は自分のプロジェクトのためにこれを使用し、それがうまく動作します!

0

私はNSISを使用しました。インストールスクリプトを書いてから数ヶ月が経ちましたので、いくつかの詳細はあいまいでなければなりません。

最初に.NET CF 3.5をインストールします。私はNETCFSetupv35.msiファイルを使用します。このファイルは、.NET CF 3.5がモバイルデバイス上に自動的にインストールされます(存在しない場合)。 .NET CF 3.5がすでに存在する場合は、すでに存在していることを示すダイアログボックスが表示されます(これは受け入れ可能です)。 ExecWait(http://nsis.sourceforge.net/Docs/Chapter4.html)が読み取れる戻り値を設定し、.NET CFがインストールされていない場合にのみmsiを呼び出します。

私はインストールする8台のタクシー、SQL Server Compact 3.5用(3台)、依存するソフトウェア用4台(クライアントによってはオプション)、私たちのアプリケーション用に1台があります。私はこのチュートリアルに従いました:http://nsis.sourceforge.net/NSIS_for_Smartphone。読み込み専用にしたい場合はセクションごとにSectionIn 1 ROを追加します。その後、各CABに引数として渡すCeAppMgrを呼び出します。

関連する問題