Ho un progetto, che ho iniziato con Beta8 bit di .net core e da allora ho una libreria F #, che utilizzo da un'app C# di asp.net. (Btw here è un campione minimo basato RC2 per fare riferimento alla F # lib da un nucleo console app net based)
Ecco come ho fatto:
Attualmente (secondo la mia conoscenza) non v'è alcun modello in VS per creare una libreria F # basata su coreCLR (i modelli PLC in F # sono tutti basati su framework completo, ma non è ancora possibile fare riferimento da asp.net core anche se viene eseguito su framework completo), quindi è necessario farlo con la riga di comando. Questo è fatto da:
dotnet new --lang F#
Questo ti crea un ciao mondo app coreCLR F #. Puoi trasformare l'app in una libreria di classi modificando il file project.json.
Se si dispone di una soluzione VS e si fa clic su "Aggiungi" -> "Progetto esistente" è possibile selezionare il file project.json. In questo modo lo aggiungi alla tua soluzione (e anche un file xproj verrà creato).
Quindi a questo punto si avrà il progetto F # basato su coreCLR nella propria soluzione. Credo che facendo clic con il tasto destro del mouse sul progetto asp.net core e andando su "Aggiungi" -> "Riferimento" -> Progetti-> Soluzioni e selezionando la libreria F # puoi già farne riferimento. Se questo non funziona, puoi farlo manualmente: basta elencare il progetto F # sotto le "dipendenze" nel project.json dell'applicazione asp.net core.
Se l'applicazione principale asp.net viene eseguita su un framework completo, è comunque necessario eseguire questi passaggi. In realtà non importa.
Ora la parte brutta:
- In RTM (pubblicato il Lunedi) il comando “dotnet nuova” crea un uncompliable F # app, a causa di alcuni problemi di dipendenze. Questo è tracciato here (il titolo dice "su macOS", ma è lo stesso su Windows) e non appena viene risolto dovrebbe andare bene (o se non hai ancora installato RTM e hai RC2 sei anche bravo).
- Intellisense e il debug attraverso F # e C# non funziona (ho postato here)
c'è qualche informazioni più recenti su questo? Sto cercando di ottenere una libreria di classi F # che funzioni in una soluzione con altri progetti core di C# asp.net, ma senza avere fortuna. C'è un buon esempio di project.json attualmente funzionante per questo scenario? –
@JoeAudette Ecco una descrizione più dettagliata con una soluzione di esempio: http://kalapos.azurewebsites.net/referencing-an-f-library-from-c-on-net-core Secondo la mia conoscenza, questa è la fase attuale (ed è così che lavoro oggi ...). Secondo la roadmap "L'esperienza IDE migliore con il supporto dell'area di lavoro sul servizio di lingua F #" arriverà negli strumenti RTM (cosa significa esattamente che non lo so ..) https://blogs.msdn.microsoft.com/dotnet/ 2016/07/15/net-core-roadmap/ – gregkalapos
@gegkalapos, grazie! il problema che sto avendo è la mia libreria di classe F # Voglio creare un controller, in project.json ho aggiunto le dipendenze necessarie ma VS dice che lo spazio dei nomi non è disponibile su questa riga nel mio codice, come se non vedesse il dipendenze di riferimento: open Microsoft.AspNetCore.Mvc –