Ich muss wissen, ob es eine Art Präprozessor-Direktive gibt, oder vielleicht nur einen Trick, der es mir ermöglicht, den Lösungsordner, in dem eine Anwendung kompiliert wurde, in die Anwendung selbst einzubetten.Abrufen des ProjectPath oder SolutionPath im Code
Wir haben ein System, das auf Dateien auf dem lokalen Rechner prüfen muss und wenn sie nicht vorhanden sind, geht und holt sie von einem Remote-Server oder Cloud-Service. Dies muss aus Gründen der Portabilität abstrahiert werden. Wir haben Komponententests, die sicherstellen, dass die Remote-Fetch-and-Store-Logik funktioniert, aber bevor wir auf die Server pushen, muss ich sicherstellen, dass die Leute Ende-zu-Ende lokal testen, also möchte ich einen Dummy-Remote-Datei-Provider haben Das checkt einfach einen anderen Ordner auf dem lokalen Computer ein. Ich möchte keinen bestimmten Pfad (wie C: \ dummy_files) annehmen, noch kann ich annehmen, dass die Dateien relativ zum tatsächlichen Ausführungspfad für die kompilierte Assembly sind (daher wird etwas wie Directory.GetCurrentDirectory() nicht gehen) Arbeit).
Wenn ich weiß, woher die ausführende Anwendung kompiliert wurde, sollten die Dateien relativ zum Lösungsverzeichnis mit dem Quellcode sein. Offensichtlich werde ich Präprozessor-Direktiven verwenden, damit dieser Code nur im Debug-Modus ausgeführt werden kann.
Verwenden Sie NMake: https://msdn.microsoft.com/en-us/library/dd9y37ha.aspx – jdweng