我有一個FSX文件,其中我嘗試,如果我刪除#if DEV ... #endif
圍繞#load
指令,要做到這一點應該可以將#load指令放在F#fsx文件中的#if指令內嗎?
#if DEV
#load "MyFile.fs"
#endif
// Later in the file
#if DEV
callSomethingFromMyFile()
#endif
的callSomethingFromMyFile()
作品。
我意識到這可能是一個奇怪的事情,但它是因爲我使用寓言編譯爲F#到js,並且如果我想在生成「構建」時排除文件以減少js文件大小。
你有沒有嘗試'#加載'但是'打開MyFile.fs'? – s952163
明顯應該是'打開MyFile',如果你只是在FSI工作'#if INTERACTIVE'會讓你包裝這些語句(包括#load)。 – s952163
@ s952163問題的關鍵在於fsi指令和f#編譯器/預處理器指令之間存在差異,所以顯然當在INTERACTIVE(是的,fsi正在運行show!)fsi指令(如#load工作)時。在fsi之外發生的情況是,只有編譯器/預處理器負責處理funs時,是一件完全不同的事情,因爲#load不是編譯器/預處理器指令。 –