Próbuję użyć nowych funkcji krotek w C# 7 w aplikacji ASP.NET MVC 5, używając wersji .NET 4.6.1. i Visual Studio 2017 RC. Aby to zrobić, odwołałem się do tego artykułu tutaj: What's new in C# 7, który powiedział, aby zainstalować System.ValueTuple przez NuGet. Kiedy to zrobił, składnia krotka rozpoczął pracę dla mnie, jak w tym przykładzie kodu:Pakiet NuGet dla krotek w C# 7 powoduje błąd w moich widokach
public void TupleCaller()
{
(var valOne, var valTwo) = TupleExample();
}
public (string, string) TupleExample()
{
return ("Tuple Item One", "Tuple Item Two");
}
Jednak kiedy uruchomić aplikację, moje poglądy natychmiast wyrzucić ten błąd:
CS0012: The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
próbowałem wszystkie z następujących powodów:
- dodanie odniesienia do System.Runtime wersji 4.0 jako błąd mówi
- Tried co zostało zawarte w niniejszej C# 7.0 ValueTuple Question/Answer iw tym Question/Answer po zainstalowaniu kompilatorów 2.0.
- Ręczne dodawanie odwołania do System.Runtime w widoku (wydaje mi się, że byłem po prostu trochę zdesperowany do tego momentu).
Po odinstalowaniu pakietu System.ValueTuple NuGet i skomentowaniu nowego kodu Tuple, wszystko renderuje się poprawnie w widokach jak wcześniej.
To zadziałało. Dzięki!! – joshmcode
To działało, ale musiałem również zaktualizować pakiet Microsoft.Net.Compilers do najnowszej wersji, w przeciwnym razie spowodowało błędy składniowe podczas kompilowania – MattJeanes
Musiałem również zaktualizować język od 6 do 7 w web.config, tj. –