我有多個F#項目的解決方案。我可以在使用相對路徑的項目之間輕鬆引用。如何註冊F#Interactive永久路徑
但是,如果我想使用該項目的.fsx文件在另一個項目中,我必須提供相應的DLL文件,這是相當不方便的絕對路徑。我注意到,F#動力組可在F#互動便利的方式引用:
#r "FSharp.Powerpack.dll"
我怎麼能永久性地登記的路徑,F#互動或引用項目在F#交互使用,而不提供絕對路徑?
我有多個F#項目的解決方案。我可以在使用相對路徑的項目之間輕鬆引用。如何註冊F#Interactive永久路徑
但是,如果我想使用該項目的.fsx文件在另一個項目中,我必須提供相應的DLL文件,這是相當不方便的絕對路徑。我注意到,F#動力組可在F#互動便利的方式引用:
#r "FSharp.Powerpack.dll"
我怎麼能永久性地登記的路徑,F#互動或引用項目在F#交互使用,而不提供絕對路徑?
由於丹尼爾指出,F#PowerPack中可以使用短名稱引用,因爲它安裝到GAC(全局程序集緩存)。這需要對程序集進行簽名,並且我通常不會將其用於非系統庫。
如果裝配的位置是永遠不變的,相對於F#腳本文件(例如,如果腳本文件是項目的一部分),那麼你可以使用相對路徑:
#r @"..\Library\bin\Debug\Library.dll"
另一種方法是創建一些自定義文件夾並告訴F#Interactive在該文件夾中搜索程序集。這可以通過添加一個命令行參數-I:"C:\your\folder"
到F#互動過程中完成(在Visual Studio中,進入「選項」,然後在「F#工具」,改變「F#互動選項」)。
您可以使用#I
來設置目錄路徑一次。然後使用#r
從那裏只有文件名。在PowerPack的情況下,它可能在GAC中,所以只需要程序集名稱。
隨着I路,我還是要使用絕對路徑,爲每一個FSX文件我想運行。在多臺機器上使用相同的代碼庫並不方便。 – pad