2014-10-12 7 views
8

Sono le mie prime ore con F #, giocando con esso su Ubuntu Linux (14.04), ma mi sono perso come includere le dipendenze di installazione con nuget. Ho nuget.exe lavorando bene su Mono e posso pacchetti nuget install; atterrano nella mia directory corrente. Ma poi non posso importarli o aprirli dal mio file example.fs. Ho provato varie opzioni ma inutilmente. Devo scrivere un file di progetto o usare FAKE? Non sono riuscito a trovare alcun tutorial che dettagli i passaggi minimi necessari per impostare un progetto semplice.Come usare nuget con fsharp su Linux

Quindi, cosa devo fare per accedere alle dipendenze installate con nuget?

+0

L'ultima volta che ho provato a farlo, ho finito per utilizzare un makefile modello da https://github.com/loverdos/fsharp-mono-template. – cobbal

+0

"Ho provato varie opzioni ma inutilmente" non è abbastanza informazioni – knocte

+0

Una cosa è che F # non ricorre nelle sottodirectory - se si utilizza fsi, si vuole usare '#I ...' –

risposta

7

La risposta breve è che non è completamente semplice. La lunga risposta è che puoi affrontare il problema in diversi modi. Tutti i metodi che suggerirò qui utilizzano i progetti MSBuild .fsproj, in modo che tu possa creare con xbuild MyProject.fsproj. Vale la pena notare che gli script FAKE tendono a utilizzare anche progetti fsproj e passano a xbuild per la compilazione vera e propria. Il file fsharp.org website ha alcune istruzioni sulla procedura di avvio della configurazione di NuGet ed è una grande risorsa in generale.

  1. Utilizzare MonoDevelop. Raccomando di costruire dalla fonte. Ottieni un tag da https://github.com/mono/monodevelop e segui attentamente le istruzioni. Quindi installare il Nuget plugin. Crea un progetto F # e usa l'interfaccia in MonoDevelop per aggiungere pacchetti NuGet al tuo progetto. È quindi possibile creare dalla riga di comando o da MonoDevelop.

  2. Trova un progetto esistente che utilizza NuGet, svuotalo e utilizza l'editor di tua scelta. Un esempio di pesi massimi è https://github.com/fsprojects/ProjectScaffold, puoi trovarne altri in giro. Una volta scaricato questo progetto, potrai vedere come modificare il file nuget.config per regolare le tue dipendenze.

  3. Un progetto recente, Paket, offre finalmente un vero approccio da riga di comando al problema. Hai di nuovo bisogno di uno scheletro .fsproj (come this example), ma puoi creare un file di dipendenze molto semplice. Scarica l'ultima versione di Paket da Github. L'esecuzione di mono paket.exe install utilizzerà quindi questo file per recuperare le dipendenze da NuGet e aggiungerle allo .fsproj come riferimenti.

C'è un po 'di un problema di bootstrap, ma nessuno di questi approcci dovrebbe portarti oltre la gobba iniziale.

+1

Perché non installare semplicemente Xamarin Studio anziché vanilla MonoDevelop?Verrà configurato con nuget/mono/fsharp – rgrinberg

+2

Sfortunatamente Xamarin Studio è disponibile solo per Windows e OSX, non per Linux. – rneatherway

+0

Per monodevelop 5.x series nuget è preinstallato – MySchizoBuddy

0

Senza vedere la sceneggiatura che stai facendo è difficile sapere qual è il problema esatto. Tuttavia, il modo più leggero di alzarsi e correre è creare un file .fsx (piuttosto che un file .fs). Puoi quindi fare riferimento a dll usando la sintassi #r, ad es.

#r @"C:\path\to\my\package\myassembly.dll" 

È quindi possibile accedere al codice da lì come al solito.