Programmieren auf 2 Computer

  • VB.NET
  • .NET (FX) 4.0

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Programmieren auf 2 Computer

    Guten Morgen,

    ich habe wieder einmal eine für Euch simple Frage.

    Situation:

    Ich erstelle meine Programme meist auf 2 Rechnern, aber nicht gleichzeitig. Einen dienstlichen und einen Rechner zu Hause.

    Bislang habe ich das komplette Programmverzeichnis auf einen USB-Speicher kopiert.

    Beim erneuten Starten hatte das Programm auf den anderen Rechner immer ein Problem mit den geänderten Laufwerksnamen bzw. Verzeichnisstandorten.



    Wie kopiert man korrekt :?:

    Beste Grüße
    Das mach ich auch so, habe aber damit keine Probleme, weil in meinen Programmen keine absoluten Dateipfade eincodiert sind. Aber vielleicht versteh ich das Problem auch falsch. Kannst Du mal nen Screenshot hochladen? Bilder kannst Du forenintern über [+ Erweiterte Antwort] -> _|Dateianhänge|_ -> [Hochladen] posten. Denn ein normales Programm ohne irgendwelche eincodierten Dateipfade à la Dim MeineDatei = New IO.FileInfo("D:\MeineDatei.txt") hat bei mir beim Rechnerwechsel noch keine Probleme gemacht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Also: Dein Hinweis "keine absoluten Dateipfade" scheint die Ursache zu sein.
    Ich habe beispielsweise eine Ressourcendaten mit absoluten Dateipfad benannt und die Veröffentlichung ist ebensfalls absolut.
    Beispiel: System.Diagnostics.Process.Start("H:\Visual Studio 2018\AbwasserExeIntern2018\AbwasserExeIntern2018\Resources\Gefälle.docx")
    Wie formuliert man "relative Dateipfade"?
    Habe gerade etwas gefunden: https://www.vb-paradise.de/index.php/Thread/126665-Der-verflixte-relative-Pfad/​
    Das Programm braucht extrem lange für den Start.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Uchi-Komi“ ()

    Wie lauten denn beispielsweise die Pfade auf PC1 und PC2 für diese Gefälle.docx
    Auf PC1 ist es H:\Visual Studio 2018\AbwasserExeIntern2018\AbwasserExeIntern2018\Resources\Gefälle.docx
    Und auf PC2?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Uchi-Komi Alles, was das Projekt selbst betrifft, sollte auf beiden Rechnern identisch eingerichtet sein.
    Ggf. reicht dieselbe lokale Pfad-Struktur, d.h. C:\Projekte\ auf dem einen und D:\Projekte\Work\ auf dem anderen sind unterschiedlich, der Rest aber identisch.
    So werden vom Studio relative Pfade identisch gefunden.
    Was abweichen kann, packst Du in projekt-abhängige Settings-Dateien, die vom Programm ausgewertet werden.
    Dann sollte alles laufen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es lag wohl an absoluten Pfaden.
    Vielen Dank!

    Auf PC 2: D:\Visual Studio 2018\AbwasserExeIntern2018\AbwasserExeIntern2018\Resources\Gefälle.docx

    Ich habe in meinem Programmaufbau noch einen Widerspruch (Umbennennung) gefunden, den ich beseitige werden.

    Ich melde mich diesbezüglich wieder.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Uchi-Komi“ ()

    Gäbe es wirklich nur diese beiden Absolutpfade im Code, könntest Du es natürlich einfach hinbekommen:

    VB.NET-Quellcode

    1. Dim FilePathPart = ":\Visual Studio 2018\AbwasserExeIntern2018\AbwasserExeIntern2018\Resources\Gefälle.docx"
    2. Dim ActualFilePath = If(IO.File.Exists("H" & FilePathPart), "H" & FilePathPart, "D" & FilePathPart)
    3. If Not IO.File.Exists(ActualFilePath) Then Throw New IO.FileNotFoundException("Die Gefälle-Datei wurde nicht gefunden.")
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Warum machst du nicht einen OpenFileDialog? Das wäre die sicherste Variante. Oder verstehe ich dich falsch? Und selbst da kannst du mit verschiedenen Pfaden arbeiten.

    VB.NET-Quellcode

    1. Imports Microsoft.WindowsAPICodePack.Dialogs


    Spoiler anzeigen

    VB.NET-Quellcode

    1. Using OFD As New CommonOpenFileDialog
    2. OFD.Title = "Datei zum Öffnen auswählen"
    3. OFD.Filters.Add(New CommonFileDialogFilter("Bilder", ".jpg;.jpeg;.bmp;.png"))
    4. If System.IO.Directory.Exists("C:\Users\...\source\repos\VB.NET\...") Then
    5. OFD.InitialDirectory = "C:\Users\...\source\repos\VB.NET\..."
    6. Else
    7. OFD.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
    8. End If
    9. If OFD.ShowDialog() = CommonFileDialogResult.Ok Then
    10. Pfad_Bild = OFD.FileName
    11. Else
    12. Return
    13. End If
    14. End Using

    @Uchi-Komi
    Du kannst auch in deinem Projekt einen Testordner anlegen und dir dort vorübergehend testweise deine Datei Gefälle.docx ablegen...
    Und mit folgendem Code hast du auf beiden PC's Zugriff:

    VB.NET-Quellcode

    1. Dim fi = New FileInfo(Path.Combine("...\...\DeinFileOrdner", "Gefälle.docx"))​
    Hallo Männer!
    Also:
    Ich denke, ich habe das Problem mit Eurer Hilfe gelöst.
    Die Irritationen des Programmes Visual Studio 2013 (VB.NET) kamen wahrscheinlich in dem gegebenen Fall zu Stande, weil ich einmal auf einem lokalen Laufwerk und ein anderes Mal auf einem Netzlaufwerk programmierte.
    Jetzt schiebe ich das Programm für das Programmieren immer auf lokale Laufwerke und es gibt keine ominösen Fehlermeldungen mehr.
    Die Idee ist nicht von mir. Ich habe den Hinweis in diesem Forum gefunden, weiß aber nicht mehr wo.
    Trotzdem werden Eure Hinweise und Anregungen nicht nur für mich nützlich sein.

    Vielen Dank für die Unterstützung

    Uwe

    Uchi-Komi schrieb:

    und ein anderes Mal auf einem Netzlaufwerk programmierte.
    Solch macht man eigentlich nicht.
    Programmieren lokal, Quellcode-Verwaltung auf einem Server.
    Zum anderen Rechner gehen, auschecken, editieren, einchecken und zurück.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Meine Dateien liegen z.B. auf OneDrive - dann kannst dir den Stick sparen und die Pfade sind auf jedem Rechner gleich. Musst nur drauf achten, dass die Synchronisation abgeschlossen
    ist bevor du z.B. den Dienstrechner ausschaltest und dich dann daheim an's Programm setzt.
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:

    tragl schrieb:

    Meine Dateien liegen z.B. auf OneDrive
    Setzt eine Internetverbindung voraus, die nicht überall (physisch und logisch) gegeben ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also ich mach das so:

    * Programmieren zu 95% auf dem Hauptrechner. Sourcecodes liegen lokal.
    * Datensicherung jeden Tag auf die NAS
    * Wenn ich mal am Laptop sitze, dann mache ich mir eine Anydesk-Sitzung auf den Hauptrechner auf.

    Ich hatte es auch schon anders probiert und Daten hin- und herkopiert.
    Aber hier besteht die Gefahr, dass beim Kopieren irgendetwas abhanden kommt oder man sich (wenn man nicht aufpasst) eine neuere Version mit einer älteren überschreibt.
    Das ist mir im Dezember passiert. 6 Wochen Programmierarbeit waren dahin. Aber dank Lockdown habe ich das in einer Woche wieder aufgeholt ;-).
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    dive26 schrieb:

    Aber hier besteht die Gefahr, dass beim Kopieren irgendetwas abhanden kommt oder man sich (wenn man nicht aufpasst) eine neuere Version mit einer älteren überschreibt.
    Nutze ein Quellcode-Verwaltungssystem, da passiert nix davon.
    Pack Dein Repository auf die NAS und feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Bartosz Für privat ist das völlig in Ordnung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!