Oto scenariusz:W jaki sposób polecenie F # Interactive #I wie o ścieżce projektu?
- Otwórz Visual Studio. Dokonano tego w VS2010 Pro.
- Otwarte F # Interactive wewnątrz Visual Studio
- Otwarty projekt z FSX pliku
Uwaga: Projekt i plik FSX są wE:\<directories>\fsharp-tapl\arith
wysyłania poleceń do F # Interactive z FSX pliku
> System.Environment.CurrentDirectory;; val it : string = "C:\Users\Eric\AppData\Local\Temp"
nie byłem oczekiwanie katalogu Temp, ale ma sens.
> #r @"arith.exe" Examples.fsx(7,1): error FS0082: Could not resolve this reference. Could not locate the assembly "arith.exe". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. (Code=MSB3245) Examples.fsx(7,1): error FS0084: Assembly reference 'arith.exe' was not found or is invalid
Błąd polecenia #r pokazuje, że F # Interactive aktualnie nie zna położenia pliku arith.exe.
> #I @"bin\Debug" --> Added 'E:\<directories>\fsharp-tapl\arith\bin\Debug' to library include path
Poinformujemy F # Interactive o położeniu pliku arith.exe. Należy zauważyć, że ścieżka NIE jest ścieżką bezwzględną, lecz pod-ścieżką projektu. nie powiedziałem F # Interactive lokalizacja projektu Arith
E:\<directories>\fsharp-tapl\arith
> #r @"arith.exe" --> Referenced 'E:\<directories>\fsharp-tapl\arith\bin\Debug\arith.exe'
i F # Interactive poprawnie wyszukuje arith.exe raportowania prawidłową ścieżkę bezwzględną.
> open Main > eval "true;" ;; true val it : unit =()
Potwierdza to, że arith.exe został poprawnie znaleziony, załadowany i działa.
W jaki sposób F # Interaktywny #I komenda zna ścieżkę projektu, ponieważ bieżący katalog nie jest pomocny?
To, o czym naprawdę piszę, pochodzi z F # Interactive, jak uzyskać ścieżkę do projektu, E:\<directories>\fsharp-tapl\arith
.
EDIT
> printfn __SOURCE_DIRECTORY__;;
E:\<directories>\fsharp-tapl\arith
val it : unit =()
Jest to bardzo przydatne, dzięki ... dla każdego, kto jest zainteresowany Mathias Brandewinder ma kilka cennych wskazówek [ ] (http: // brandewinder.com/2016/02/06/10-fsharp-scripting-tips /) do pracy ze skryptami fsx. Miałem problem z uzyskaniem dostępu do pakietów nuget z pliku skryptu w bibliotece, #I @ ".. \ packages" to rozwiązał –