So ändern Sie die Ausgabe-Datei Ordner auf dem Gerät
Zuerst werde ich beginnen mit dem, was ich versuche zu erreichen, dann werde ich kontextuellen details:
Wenn ich wählen Sie "Debuggen Starten", will ich die Ausgabe-Verzeichnis ändern, je nachdem, welches Gerät angeschlossen ist, über Windows Mobile Device Center. Klärung: Installation über das setup-Programm funktioniert gut, aber das Debuggen von Visual Studio ist, was gibt mir Probleme.
Ich bin mit Visual Studio 2008. Das Projekt ist eine Smart Device-Projekt, geschrieben in C# für Compact Framework 3.5 und targets, die Windows Mobile 5.0 Pocket PC-Gerät, R2(entsprechend den Projekt-Einstellungen). Ich habe festgestellt, dass wenn ich den Gegner mit diesem Gerät, es funktioniert einwandfrei auf allen Versionen von Windows Mobile, die wir unterstützen, zusammen mit Windows CE 6. Eine vorgeschlagene Lösung arbeiten müssen, die auf Windows Mobile und Windows CE.
Wenn ich gehe in die Projekteigenschaften, und wählen Sie die Registerkarte Geräte, es zeigt die Ausgabe-Datei-Ordner: und der Pfad für die Ausgabe. Wenn ich auf den button ... kann ich dies ändern, um verschiedene Standardeinstellungen, oder sogar legen Sie es auf Root-Ordner, und dann vollständig angeben, den genauen Pfad habe ich als Unterverzeichnis. Auf den meisten Geräten, wenn ich Sie nur lassen Sie es an (Standard-Gerät) oder wählen Sie "Programm-Ordner "Dateien" aus dem drop-down-Liste funktioniert es einwandfrei. Das problem ist, dass wenn es läuft auf dem Windows CE-Gerät, dass wir die Unterstützung, die es ausführen muss, um von einem anderen Standort aus.
Mögliche Lösungen:
Mehrere Projekt-Lösung: mehrere Projekte für verschiedene Geräte. Das problem mit diesem ist, ich weiß nicht, wie zu tun, ohne gegen die TROCKENE AUFTRAGGEBER für einige der Dateien, die aufgenommen werden müssen, die mit der Ausgabe und das möchte ich nicht haben, um hin-und herschalten zwischen verschiedenen Start-Projekte.
Neu definieren %CSIDL_PROGRAM_FILES%
Lösung: Ändern, was %CSIDL_PROGRAM_FILES%
Mittel, da dies werden in den Ausgabe-Pfad angeben, wo die Programm-Dateien ist. Allerdings weiß ich nicht ob dies möglich ist oder wo Sie anfangen mit versuchen diese. Ich dachte, vielleicht wäre dies im Gerät definierten registry, aber ich kann es nicht finden.
Custom path-variable Lösung: Wählen Sie den Root-Ordner und dann unter dem Unterverzeichnis irgendwie eine Referenz-variable (vielleicht durch beginnend und endend mit einer %
?) in den Pfad, den ich ändern kann, was ich brauche (vielleicht von einem post-build-oder pre-deploy(wenn dort ist solch ein Ding) - Skript). Ich weiß nicht, ob dies möglich ist oder wo, mit diesem zu starten.
Jede Hilfe wird sehr geschätzt, danke!
EDIT:
Nachdem ich einige Graben, meine beste Vermutung ist, dass %CSIDL_PROGRAM_FILES%
ist ein Windows-CE-Umgebungsvariable. Ich weiß noch nicht, ob es möglich ist, erstellen Sie oder ändern Sie diese.
- CSIDL (constant special item ID list) Werte sind Konstanten, die verwendet werden, um beziehen sich auf Orte, die ändern sich mit verschiedenen Sprachen oder Betriebssystem-builds. Sie kann nicht Hinzugefügt oder geändert werden. Diejenigen, die Sie sehen, im Studio sind immer vergangen, über die CoreCon APIs, schob quer auf das Gerät, und klicken Sie dann auf der Geräte-Seite, die Sie übersetzt werden.
- Vielen Dank für das teilen Ihr know-how. Sind Sie sicher, es ist nicht eine Weise zu verändern, wie das Gerät wandelt diese Konstanten? Was die Technik beteiligt ist, an diesem Punkt? Ich weiß, das ist eine lange erschossen und Sie schon sagte, es ist nicht möglich, aber manchmal hören die Fragen von jemand, der weniger kompetent öffnet neue Denkprozesse.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit verschiedenen Lösungs - /Projekt-Konfigurationen verwenden eine unterschiedliche Ausgabe-Pfad-und debug-Einstellungen:
In der VS Recht auf die Lösung und "Configuration Manager"
In der Liste unter "Konfiguration der aktuellen Projektmappe" klicken
Nun geben Sie einen neuen beschreibenden Namen ein und die Einstellungen kopiert werden können, die für die neue config. Bitte aktivieren Sie "neues Projekt Erstellen Einstellungen" und klicken Sie auf OK,
Du jetzt eine neue Lösung und eine neue Projekt-Einstellung.
Klicken Sie auf OK, um die Projektmappe schließen config-manager.
Ändern Sie die Einstellungen für alle oder einzelne Projekt-Konfigurationen müssen Sie rechts klicken Sie auf die Projektmappe und wählen Sie dann Eigenschaften aus
Nun können Sie verschiedene Einstellungen für jede Konfiguration.
Deployment-Einstellungen für "Release_Device1" config:
Aber unterschiedliche deployment-Einstellungen für die "Freigabe" config:
Sie können auch verschiedene Debug-Einstellungen in Ihrer Konfiguration festgelegt:
Jedes Ding hinzufügen?
Zuerst habe ich versucht, verwenden Sie eine Umgebungsvariable, in der Projekt-Datei:
Aber das ist leider nur aktualisiert, wenn Sie das VS starten und nicht später aktualisiert werden.
Ich würde gehen Sie mit einem benutzerdefinierten deployment-script mit dem kostenlosen remote-tools.
Mithilfe Schwangerschaft Sie sollten in der Lage sein, zu erkennen, die verschiedenen Geräten in einem batch-Skript:
wird zum Beispiel geben:
auf einem Gerät und auf einem anderen bekomme ich:
Sollte es nicht so schwer zu filtern, die in einer bat/cmd-Datei und verwenden dann Stell das bereitstellen einer exe zu verschiedenen dir je nach pregutl Abfrage.
Den bat/cmd-Datei kann dann verwendet werden, anstatt die VS-Implementierung als Post-Integrierte Veranstaltung.
Ja, alles ist ein bisschen kompliziert, aber funktioniert.
Wenn ich verstehe Ihre richtig, ich sehe ein paar Optionen, die Sie nehmen konnten:
Haben Ihre installer diese ausführbaren Dateien in die Ordner, die Sie benötigen, oder
Ort alle Daten, die Sie benötigen, an einem zentralen Ort (
\Program Files\Data
Ordner).Dass die erste option, von selbst, wäre schwierig (unmöglich durch die VS2008-Umgebung) zu Debuggen unter, obwohl.
Könnte man auch eine Kombination aus beiden verwenden!
Nun werde ich gehen schau dir all die tools josef verbunden. Wo bekommt er all diese coolen Spielzeug?