2016-06-28 14 views
7

Ten problem jest dokładnie taki, jak opisano w tytule.Nie można odwoływać się do biblioteki klasy F #

Mam przenośną bibliotekę klasy F #. Stworzyłem aplikację internetową ASP.NET Core (zarówno .NET Framework, jak i .NET Core), z której próbowałem dodać odniesienie do mojej biblioteki klasy F #.

Próbując dodać odwołanie daje wiadomość:

Następujące projekty nie są obsługiwane jako odniesienia:

typu projekt jest obsługiwany przez obecnego projektu i nie może (sic!) Odwoływać.

Jest to bardzo rozczarowujące, ponieważ .NET Core jest teraz w ogólnej dostępności.

Czy są jakieś obejścia, gdy ten błąd zostanie rozwiązany?

Odpowiedz

3

Mam projekt, którego zacząłem od bitów Beta8 z rdzeniem .net i od tego czasu mam bibliotekę F #, której używam z głównej aplikacji C# asp.net. (Btw here jest oparty minimalna próbka RC2 do odwoływania się do F # lib z rdzenia aplikacji konsoli opartej netto)

Oto jak to zrobiłem:

Obecnie (według mojej wiedzy) nie ma żadnego szablonu w VS stworzyć bibliotekę F # opartą na coreCLR (szablony PLC pod F # są oparte na pełnej strukturze, ale nadal nie można odwoływać się do rdzenia asp.net, nawet jeśli działa na pełnym szkielecie), więc musisz to zrobić za pomocą wiersza poleceń. Wykonuje się to przez:

dotnet new --lang F# 

Stworzy to witamy świat coreCLR F # app. Możesz zmienić aplikację w bibliotekę klas, modyfikując plik project.json.

Jeśli masz rozwiązanie VS i klikniesz "Dodaj" -> "Istniejący projekt", możesz wybrać plik project.json. W ten sposób dodasz go do swojego rozwiązania (i przy okazji zostanie również utworzony plik xproj).

W tym momencie będziesz mieć projekt F # oparty na coreCLR. Wierzę, klikając prawym przyciskiem myszy na podstawowy projekt asp.net i przejdź do "Dodaj" -> "Odniesienia" -> Projekty-> Rozwiązania i wybierając bibliotekę F #, którą możesz już do niej odwołać. Jeśli to nie zadziała, możesz zrobić to ręcznie: po prostu wypisz projekt F # w "zależnościach" w pliku project.json podstawowej aplikacji asp.net.

Jeśli Twoja podstawowa aplikacja asp.net działa na pełnej strukturze, nadal musisz wykonać te kroki. To naprawdę nie ma znaczenia.

Teraz złe część:

  • W RTM (Release poniedziałek) „nowa DotNet” polecenie tworzy uncompliable F # aplikacji, z powodu pewnych problemów z zależnościami. To jest śledzone here (tytuł mówi "na macOS", ale tak samo jest w Windows) i jak tylko zostanie rozwiązany, to powinno być w porządku (lub jeśli jeszcze nie zainstalowałeś RTM i masz RC2, jesteś także dobry).
  • IntelliSense i debugowanie w poprzek F # i C# nie działa (I napisali to here)
+0

jest jakaś nowsza informacji na ten temat? Próbuję uzyskać bibliotekę klasy F # pracującą w rozwiązaniu z innymi głównymi projektami C# asp.net, ale nie mając szczęścia. Czy istnieje dobry przykład aktualnie działającego projektu.json dla tego scenariusza? –

+0

@JoeAudette Oto bardziej szczegółowy opis z przykładowym rozwiązaniem: http://kalapos.azurewebsites.net/referencing-an-f-library-from-c-on-net-core Według mojej wiedzy jest to obecny etap (i tak pracuję dzisiaj ...). Zgodnie z mapą drogową "Lepsze doświadczenia z obsługą IDE w obszarze roboczym w usłudze języka F #" pojawią się w narzędziach RTM (co to dokładnie oznacza, że ​​nie wiem ..) https://blogs.msdn.microsoft.com/dotnet/ 2016/07/15/net-core-roadmap/ – gregkalapos

+0

@gegkalapos, dzięki! problem, który mam, to moja biblioteka klasy F # Chcę utworzyć kontroler, w project.json dodałem potrzebne zależności, ale VS mówi, że przestrzeń nazw nie jest dostępna w tym wierszu w moim kodzie, tak jak nie widzi zależności, do których się odwołuję: otwórz Microsoft.AspNetCore.Mvc –

1

Chociaż oficjalnie wydano .NET Core, większość pakietów nugetowych w aplikacji sieciowej ASP.NET Core jest w fazie wstępnej. Co więcej, mimo że model identyfikacji struktury encji został oczyszczony, moja próba zmiany kolumn kluczowych dla użytkowników i ról z łańcuchów na ints spowodowała niejasny błąd podczas próby implementacji migracji Entity Framework. Wiem, że mogę to zrobić dla aplikacji sieci Web .NET, mimo że proces jest nieporęczny w niektórych miejscach. Na razie wróciłem do korzystania z aplikacji sieciowej .NET Framework. Czekam na w pełni dojrzałą wersję aplikacji internetowych ASP.NET Core. Nie jest gotowy, ale wygląda bardzo obiecująco.

Powiązane problemy