Frage

Ich habe gerade Microsoft Robotics Studio 2008 R2 installiert und muss zugeben, dass ich schockiert bin zu entdecken, wie Wege behandelt werden.

Erster des Studios möchte sich in mein persönliches Profil installieren (dies ist auf Vista):

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

Ich gehe davon aus, dass dies daran liegt, dass ich während der Entwicklung Dateien in den Ordner Robotics Studio schreiben muss C:\Program Files A Nein Go.

Wenn ich dann ein neues Robotics -Projekt erstelle, werden zum Projekt viele absolute Wege hinzugefügt, die auf das Robotics Studio zeigen. Wenn ich mein Projekt in die Quellvertretung überprüfe und ein anderer Entwickler es auf seiner Maschine überprüft, werden die absoluten Pfade nicht gelöst und das Projekt wird nicht kompiliert.

Da alle Dienste in einem einzigen Ordner im Robotics Studio -Ordner gesammelt werden, in dem mehrere unabhängige Dienste auf einem einzigen Computer entwickelt werden, scheint es zumindest verwirrend zu sein.

Haben Sie gute Strategien für den Umgang mit diesem Chaos?

War es hilfreich?

Lösung

Ich habe jetzt eine Möglichkeit gefunden, ein Microsoft -Robotik -DSS -Service Visual Studio -Projekt in etwas zu ändern, das Sie in Ihrem eigenen Quellbaum unabhängig vom Installationspfad des Robotics Studio kompilieren und ausführen können. Hier finden Sie eine Beschreibung dessen, was Sie tun müssen, um das Projekt zu ändern:

  1. Fügen Sie Ihnen den Robotics Studio Bin Path hinzu WEG Umgebungsvariable, um auszuführen dssproxy.exe ohne einen vollen Weg zu liefern. Ich habe Robotics Studio in den Ordner "Programmdateien" installiert, um zu vermeiden, dass Dateien in den Ordnern Robotics Studio geschrieben werden.

  2. Öffne das Eigenschaften Seite für das Projekt und wählen Sie die aus Bauen Tab. In dem Ausgabe Abschnitt ändern die Ausgangspfad zu Debug\bin. Für .NET -Projekte ist es üblich, in Ordner zu kompilieren bin\Debug und bin\Release Aber der Robotik -Hosting -Service erwartet in einem Ordner namens zu leben bin und speichert Daten im Ordner über dem Ordner bin Mappe.

  3. Gehe zum Unterzeichnung Registerkarte und wählen Sie einen neuen Schlüssel in der Wählen Sie eine starke Namensschlüsseldatei Kasten. Sie können entweder an diesem Punkt Ihren eigenen Schlüssel generieren oder die verwenden sn.exe Dienstprogramm zur Generierung eines neuen Schlüssels. Oder wenn Sie Ihre eigene Richtlinie zum Erstellen von Schlüssel haben, folgen Sie dem. Das sn.exe Nützlichkeit kann in der gefunden werden tools Ordner des Robotikstudios.

  4. In dem Ereignisse bauen Tab bearbeiten Post-Build-Ereignis-Befehlszeile:

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

    Achten Sie auf das Argument an /keyfile. Geben Sie einen Ausdruck ein, der die im vorherige Schritt erstellte starke Datei der starken Namensschlüsseldatei lokalisiert.

  5. Kopieren Sie die Dateien DssHost.exe und DssHost.exe.config (oder DssHost32.exe und DssHost32.exe.config Für den 32 -Bit -Hosting -Service) aus dem Robotics Studio Bin -Ordner in den Projektordner und fügen Sie diese Dateien zum Projekt hinzu. Setzen Sie die Aktion aufbauen zu Inhalt und Kopieren Sie in das Ausgabeverzeichnis zu Kopieren Sie, wenn neuer. Tun Sie das Gleiche für die Manifestdatei Für Ihren Service. Tatsächlich muss die Manifest -Datei nicht im selben Ordner wie der Dienst sein, aber das Kopieren in den Ausgangsordner ermöglicht es Ihnen, die XCOPY -Bereitstellung durchzuführen.

  6. In dem Debuggen Tab ändern Sie die Starten Sie das externe Programm zum DssHost.exe im Ausgangsordner Ihres Projekts. Sie müssen das Projekt einmal erstellen, um die Datei in den Ausgabeordner zu kopieren. Löschen die Arbeitsverzeichnis. Setzen Sie die Kommandozeilenargumente zu

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

    Ändern Sie den Manifest -Dateinamen in Ihrem Projekt in den richtigen Namen. Sie können die hier oder in der verwendeten Portnummern ändern DssHost.exe.config Datei. Wenn Sie in einer geschützten Windows -Umgebung (UAC) ausgeführt werden, müssen Sie die verwenden httpreserve Befehl, sich Zugriff auf einen bestimmten Port zu gewähren. Sie müssen diesen Befehl als Administrator ausführen.

    Die Debug -Einstellungen werden in der Projektdatei nicht gespeichert und jeder Entwickler muss persönliche Einstellungen erstellen.

Sie sollten auch die aktualisieren Veröffentlichung Konfiguration entsprechend.

Andere Tipps

Da ich mich nur für den CCR von MS Robotics interessierte, füge ich diese Versammlungen als Verweis auf jedes Projekt hinzu, mit dem ich es verwende, und bin einfach damit fertig.

Dies funktioniert ohne Probleme. Wenn Sie also auch nur am CCR- und DSS -Teil des Studios interessiert sind, könnte dies Ihre Lösung sein

Reinier

Wir sehen dieses Problem sehr. Die absolut einfachste Lösung besteht darin, das Installationsverzeichnis bei der Installation von Robotics Studio so anzugeben, dass sie "C: Programme Microsoft Robotics Studio" bestehen. Auf diese Weise wird das Verschieben von Code zwischen Maschinen, die Überprüfung der Quellensteuerung usw. viel weniger problematisch.

Die andere Option besteht darin, die DSProjectMigration zu verwenden, die bei RDS enthalten ist. Führen Sie einfach die DSProjectMigration mit Ihrem Projektverzeichnis aus, und es wird alle festcodierten Pfade korrigieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top