5

まず、私が達成しようとしていることから始めて、次にコンテキストの詳細を提供します。

[デバッグの開始] を選択したときに、Windows Mobile デバイス センター経由で接続されているデバイスに応じて、出力ディレクトリを変更したいと考えています。明確化: セットアップ プログラムからのインストールは問題なく動作しますが、Visual Studio からのデバッグが問題を引き起こしています。

Visual Studio 2008 を使用しています。このプロジェクトは、Compact Framework 3.5 用に C# で記述されたスマート デバイス プロジェクトであり、Windows Mobile 5.0 Pocket PC Device R2 を対象としています (プロジェクト設定による)。このデバイス タイプをターゲットにすると、Windows CE 6 と共にサポートされている Windows Mobile のすべてのバージョンで正しく動作することがわかりました。提案されたソリューションは、Windows Mobile と Windows CE の両方で動作する必要があります。

プロジェクトの [プロパティ] に移動し、[デバイス] タブに移動すると、出力ファイル フォルダー: と出力のパスが表示されます。[...] ボタンをクリックすると、これを別のデフォルトに変更したり、ルート フォルダーに設定したりして、サブディレクトリとして必要な正確なパスを完全に指定できます。ほとんどのデバイスでは、(Device Default) のままにするか、ドロップダウン リストから Program Files Folder を選択すると、問題なく動作します。問題は、サポート対象の Windows CE デバイスで実行する場合、別の場所から実行する必要があることです。

考えられる解決策:

複数のプロジェクト 解決策: 異なるデバイスに対して複数のプロジェクトを用意します。これに関する問題は、出力に含める必要がある一部のファイルの DRY プリンシパルに違反せずにそれを行う方法がわからないことと、異なる Start プロジェクト間で前後に切り替える必要がないことです。

%CSIDL_PROGRAM_FILES%ソリューションの再定義:%CSIDL_PROGRAM_FILES%これは、Program Files の場所を指定する出力パスにある可能性があるため、意味を変更します。ただし、これが可能かどうか、またはどこから始めればよいかはわかりません。これはデバイス レジストリで定義されているのではないかと思ったのですが、見つかりません。

%カスタム パス変数の解決策: [ルート フォルダー] を選択し、[サブディレクトリ] の下で、必要なものに変更できるパス内の変数を何らかの方法で参照します (おそらく、ビルド後またはデプロイ前 (場合)そのようなものがあります)スクリプト)。これが可能かどうか、またはどこから始めればよいかわかりません。

どんな助けでも大歓迎です、ありがとう!

編集:

掘り下げた後、私の最善の推測は、それ%CSIDL_PROGRAM_FILES%が Windows CE 環境変数であるということです。これらを作成または変更できるかどうかはまだわかりません。

4

3 に答える 3

1

さまざまなソリューション/プロジェクト構成を使用して、さまざまな出力パスとデバッグ設定を使用します。

VS でソリューションを右クリックし、[構成マネージャー] をクリックします。 ここに画像の説明を入力

「アクティブなソリューション構成」の下のリスト内でクリックします ここに画像の説明を入力

ここで、新しい説明的な名前と、新しい構成用にコピーされる設定を入力します。「新規プロジェクト構成の作成」を有効にして、「OK」をクリックしてください

これで、新しいソリューションと新しいプロジェクト構成が得られました。 ここに画像の説明を入力

[OK] をクリックして、ソリューション構成マネージャーを閉じます。

すべてまたは個々のプロジェクト構成の設定を変更するには、ソリューションを右クリックして [プロパティ] を選択する必要があります ここに画像の説明を入力

これで、構成ごとに異なる設定を行うことができます。

「Release_Device1」構成の展開設定: ここに画像の説明を入力

ただし、「リリース」構成の異なる展開設定: ここに画像の説明を入力

構成セットにさまざまなデバッグ設定を含めることもできます。 ここに画像の説明を入力

追加するものはありますか?

于 2013-03-01T12:18:37.647 に答える
0

私があなたを正しく理解しているなら、私はあなたが取ることができるいくつかのオプションを見ます:

  1. インストーラーにこれらの実行可能ファイルを必要なフォルダーに配置してもらうか、

  2. 必要なすべてのデータを中央の場所(\Program Files\Dataフォルダー)に配置します。

ただし、その最初のオプション自体は、デバッグが困難です(VS2008環境では不可能です)。

両方を組み合わせて使用​​することもできます!

次に、 josefがリンクしているすべてのツールを見ていきます。彼はそれらのクールなおもちゃをどこで手に入れますか?

于 2013-02-27T15:10:12.740 に答える
0

まず、プロジェクト ファイルで環境変数を使用しようとしました。

    <DeploymentTool
    ForceDirty="-1"
    RemoteDirectory="$(ceRemoteDir)"
    RegisterOutput="0"
    AdditionalFiles=""
/>

残念ながら、これは VS の起動時にのみ更新され、後で更新されることはありません。

無料のリモート ツールを使用して、カスタムの展開スクリプトを使用します。

preg を使用すると、バッチ スクリプト内でさまざまなデバイスを認識できるはずです。

pregutl.exe hklm\Ident

たとえば、次のようになります。

[HKLM\Ident]
Desc=""
Name="CK7007121144066"
OrigName="Pocket_PC"
Restriction=dword:00000002
Username="guest"

あるデバイスと別のデバイスで次のようになります。

[HKLM\Ident]
Desc="Intermec CN3 Device"
Name="CN3A32110646073"
OrigName="IntermecCN3"
Restriction=dword:00000002
Username="guest"

それをbat/cmdファイルでフィルタリングし、pputを使用して、pregutlクエリに応じて別のディレクトリにexeを展開することはそれほど難しくありません。

その後、ビルド後のイベントとして VS 展開の代わりに、bat/cmd ファイルを使用できます。

はい、これはすべて少し複雑ですが、うまくいきます。

于 2013-02-27T13:12:23.423 に答える