3

Microsoft Robotics Studio 2008 R2 をインストールしたばかりですが、パスがどのように処理されるかを知ってショックを受けていることを認めなければなりません。

最初に、スタジオは自分自身を私の個人プロファイルにインストールしたいと考えています (これは Vista 上にあります):

C:\Users\MyUserName\Microsoft Robotics Dev Studio 2008 R2

これは、開発中にロボティクス スタジオ フォルダーにファイルを書き込む必要がありC:\Program Files、うまくいかないためだと思います。

次に、新しいロボティクス プロジェクトを作成すると、ロボティクス スタジオを指す多数の絶対パスがプロジェクトに追加されます。自分のプロジェクトをソース管理にチェックインし、別の開発者がそのプロジェクトを自分のマシンにチェックアウトすると、絶対パスが解決されず、プロジェクトがコンパイルされません。

また、すべてのサービスがロボティクス スタジオ フォルダー内の 1 つのフォルダーにまとめられているため、1 台のコンピューターで複数の独立したサービスを開発することは、少なくとも混乱を招くように見えます。

この混乱を処理するための良い戦略はありますか?

4

3 に答える 3

1

Microsoft Robotics DSS サービスのビジュアル スタジオ プロジェクトを、ロボティクス スタジオのインストール パスに関係なく、独自のソース ツリーでコンパイルして実行できるものに変更する方法を見つけました。プロジェクトを変更するために必要な作業の説明を次に示します。

  1. ロボティクス スタジオの bin パスをPATH環境変数に追加してdssproxy.exe、フル パスを指定せずに実行できるようにします。ロボティクス スタジオ フォルダーに誤ってファイルを書き込むことを避けるために、ロボティクス スタジオをプログラム ファイル フォルダーにインストールしました。

  2. プロジェクトの [プロパティ]ページを開き、[ビルド] タブを選択します。[出力]セクションで、[出力パス]を に変更しDebug\binます。bin\Debug.NET プロジェクトの場合、フォルダにコンパイルするのが通例ですbin\Releaseが、ロボティクス ホスティング サービスはという名前のフォルダに存在することを想定binしており、フォルダの上のフォルダにデータを保存しbinます。

  3. [署名] タブに移動し、 [厳密な名前のキー ファイルの選択]ボックスで新しいキーを選択します。その時点で独自のキーを生成するか、sn.exeユーティリティを使用して新しいキーを生成できます。または、キーを作成するための独自のポリシーがある場合は、それに従います。sn.exeユーティリティは、robotics studio のフォルダーtoolsにあります。

  4. [ビルド イベント] タブで、 [ビルド後のイベント コマンド ライン] を編集します。

    dssproxy.exe /dll:"$(TargetPath)" /proxyprojectpath:"$(ProjectDir)Proxy" /keyfile:"$(SolutionDir)Key.snk" $(ProxyDelaySign) $(CompactFrameworkProxyGen) /binpath:"." @(ReferencePath->'/referencepath:"%(RootDir)%(Directory) "', ' ')

    への引数に注意してください/keyfile。前の手順で作成した厳密な名前のキー ファイルを検索する式を入力します。

  5. DssHost.exeファイルand DssHost.exe.config(または32 ビット ホスティング サービスの場合はDssHost32.exeand DssHost32.exe.config) を robots studio の bin フォルダーからプロジェクト フォルダーにコピーし、これらのファイルをプロジェクトに追加します。Build ActionContentに設定し、Copy to Output DirectoryCopy if newerに設定します。サービスのマニフェスト ファイルについても同じことを行います。実際には、マニフェスト ファイルはサービスと同じフォルダーにある必要はありませんが、出力フォルダーにコピーすると、XCOPY デプロイを行うことができます。

  6. [デバッグ] タブで、外部プログラムの開始プロジェクトDssHost.exeの出力フォルダーに変更します。ファイルを出力フォルダーにコピーするには、プロジェクトを一度ビルドする必要があります。作業ディレクトリをクリアします。コマンド ライン引数を次のように設定します。

    /p:50000 /t:50001 /m:DSSService1.manifest.xml

    マニフェスト ファイル名をプロジェクト内の適切な名前に変更します。ここまたはDssHost.exe.configファイルで使用されるポート番号を変更できます。保護された Windows 環境 (UAC) で実行している場合は、httpreserveコマンドを使用して、特定のポートへのアクセスを許可する必要があります。このコマンドは管理者として実行する必要があります。

    デバッグ設定はプロジェクト ファイルに保存されず、各開発者が個人設定を作成する必要があります。

それに応じてリリース構成も更新する必要があります。

于 2009-09-09T19:45:42.807 に答える
0

この問題はよく見られます。絶対に簡単な解決策は、robotics studioをインストールするときにインストールディレクトリを「C:\ programfiles \microsoftroboticsstudio」に指定することです。そうすれば、マシン間でのコードの移動、ソース管理のチェックアウトなどの問題が大幅に軽減されます。

もう1つのオプションは、RDSに含まれているdssprojectmigrationを使用することです。プロジェクトディレクトリに対してdssprojectmigrationを実行するだけで、ハードコードされたすべてのパスが修正されます。

于 2009-10-08T19:10:24.487 に答える
0

私は MS Robotics の CCR にしか興味がなかったので、これらのアセンブリを使用するプロジェクトへの参照として追加するだけで完了です。

これは問題なく動作します。したがって、スタジオの CCR と DSS の部分だけに興味がある場合は、これが解決策になる可能性があります。

ライニエ

于 2009-09-09T13:29:32.297 に答える