2011-10-26 6 views
-1

私は複数のF#プロジェクトを持つソリューションを持っています。相対パスでプロジェクト間を簡単に参照できます。F#へのパスを永続的に登録するには

しかし、そのプロジェクトを別のプロジェクトの.fsxファイルで使用したい場合は、対応するdllファイルの絶対パスを指定する必要がありますが、これはかなり不便です。

#r "FSharp.Powerpack.dll" 

どのように私は永久にF#インタラクティブへのパスを登録するか、絶対パスを設けることなく、F#インタラクティブに使用するためのプロジェクトを参照することができます。私はF#パワーパックは、便利な方法でF#インタラクティブで参照することができることに気づきますか?

答えて

2

Danielが指摘したように、F#PowerPackはGAC(グローバルアセンブリキャッシュ)にインストールされているため、短い名前を使用して参照できます。これには、アセンブリに署名する必要があり、私は通常、非システムライブラリに対して頻繁に使用しません。

あなたのアセンブリの位置が常に同じであれば、比較的F#スクリプトファイルへの(つまりスクリプトファイルは、プロジェクトの一部である場合)、あなたは相対パスを使用することができます。

#r @"..\Library\bin\Debug\Library.dll" 

もう1つの方法は、カスタムフォルダーを作成し、そのフォルダー内のアセンブリを検索するようにF#Interactiveに指示することです。これは、コマンドライン引数-I:"C:\your\folder"をF#インタラクティブプロセスに追加することによって行うことができます(Visual Studioでは、 "Options"、 "F#Tools"、 "F#Interactive options"を変更してください)。

2

#Iを使用すると、ディレクトリパスを1回設定できます。その後、そこからファイル名だけで#rを使用してください。 PowerPackの場合は、GACの可能性が高いため、アセンブリ名のみが必要です。

+0

#Iでは、実行するすべてのfsxファイルに絶対パスを使用する必要があります。複数のマシンで同じコードベースで作業するのは便利ではありません。 – pad

関連する問題