F # Scripting: Fügen Sie ein neues Verzeichnis über #I hinzu
-
27-10-2019 - |
Frage
Wie könnte ich das zum Laufen bringen?
#I (__SOURCE_DIRECTORY__ + @"\bin\Release")
Und zweite Fragen. Ist es möglich, so etwas wie zu tun:
let path = __SOURCE_DIRECTORY__ + @"\bin\Release"
#I path
?
Lösung
Du kannst nicht. Die Befehle #i und #R sind wirklich Vorprozessoranweisungen, die ausgeführt werden, bevor der Code von FSI dynamisch kompiliert wird, sodass sie nur String-Literale unterstützen. Dies ist logisch, wenn Sie darüber nachdenken, da die referenzierten Baugruppen den Code möglicherweise kompilieren müssen.
Der Befehl #R und #i nimmt jedoch immer relative Pfade als aus dem Ort der Skripts an, also dies
#I @".\bin\Release"
Sollte gut funktionieren (beachten Sie den Punkt, um sicherzustellen, dass es ein Verwandter ist, kein absoluter Weg).
Beachten Sie, dass relative relative Pfade aus dem FSI -Arbeitsverzeichnis (normalerweise im TEMP -Verzeichnis) stammen __SOURCE_DIRECTORY__
beim Laden von Dateien von Ihren Skripten.