質問

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

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

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

これは、開発中にロボティクスのスタジオフォルダーにファイルを作成する必要があるためだと思います。 C:\Program Files ノーゴー。

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

また、すべてのサービスは、単一のコンピューターで複数の独立したサービスを開発するRobotics Studioフォルダーの単一のフォルダーに収集されるため、少なくとも混乱しているようです。

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

役に立ちましたか?

解決

Microsoft Robotics DSS Service Visual Studio Projectを変更して、Robotics Studioのインストールパスに依存しないソースツリーをコンパイルして実行できるものに変更する方法を見つけました。プロジェクトを変更するために必要なことの説明は次のとおりです。

  1. ロボットスタジオビンパスを追加します 実行できる環境変数 dssproxy.exe フルパスを供給せずに。 Robotics Studioフォルダーにロボットファイルフォルダーにロボットスタジオをインストールしました。ロボットスタジオフォルダーにファイルを誤って書き込むことを避けています。

  2. 開きます プロパティ プロジェクトのページを選択します 建てる タブ。の中に 出力 セクション変更 出力パスDebug\bin. 。 .NETプロジェクトの場合、フォルダにコンパイルすることが慣習です bin\Debugbin\Release しかし、ロボットホスティングサービス 期待する 名前のフォルダーに住む bin データを上のフォルダーに保存します bin フォルダ。

  3. に行きます 署名 タブを選択し、で新しいキーを選択します 強い名前キーファイルを選択します 箱。その時点で独自のキーを生成するか、 sn.exe 新しいキーを生成するユーティリティ。または、キーを作成するための独自のポリシーがある場合は、それに従います。 sn.exe ユーティリティはにあります tools Robotics Studioのフォルダー。

  4. の中に イベントを構築します タブ編集 ビルド後のイベントコマンドライン:

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

    議論に注意してください /keyfile. 。前のステップで作成された強い名前キーファイルを見つける式を入力します。

  5. ファイルをコピーします DssHost.exeDssHost.exe.config (また DssHost32.exeDssHost32.exe.config ロボットスタジオビンフォルダーからプロジェクトフォルダーに32ビットホスティングサービス)を使用して、これらのファイルをプロジェクトに追加します。をセットする アクションを構築しますコンテンツ出力ディレクトリにコピーします新しい場合はコピーします. 。のために同じことをします マニフェストファイル あなたのサービスのために。実際、マニフェストファイルはサービスと同じフォルダーにある必要はありませんが、それを出力フォルダーにコピーすると、Xcopy展開を行うことができます。

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

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

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

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

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

他のヒント

私はMSロボット工学のCCRにのみ興味があったので、これらのアセンブリを使用するプロジェクトへの参照として追加し、それを使用するだけです。

これは問題なく動作します。したがって、スタジオのCCRおよびDSSの一部のみにも興味がある場合は、これがあなたの解決策かもしれません

Reinier

この問題はたくさんあります。最も簡単なソリューションは、ロボット学スタジオをインストールするときにインストールディレクトリを指定することです。そうすれば、マシン間のコードを移動したり、ソースコントロールからチェックアウトするなど、問題が少なくなります。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top