2017-03-10 18 views
8

.NET sürüm 4.6.1 kullanan bir ASP.NET MVC 5 uygulamasında C# 7'deki yeni tuple özelliklerini kullanmaya çalışıyorum. ve Visual Studio 2017 RC. Bunu yapmak için bu makaleyi buraya referansladım: What's new in C# 7, System.ValueTuple'ı NuGet üzerinden kurdu.C# 7'deki Tuples için NuGet Paketi görünümlerimde bir hataya neden oluyor

public void TupleCaller() 
{ 
    (var valOne, var valTwo) = TupleExample(); 
} 

public (string, string) TupleExample() 
{ 
    return ("Tuple Item One", "Tuple Item Two"); 
} 

Ancak, ben app çalıştırdığınızda, benim görüşlerim hemen bu hatayı atmak: ben denedim

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'.

Bunu yaptığında, tuple sözdizimi bu örnek kodda gibi benim için çalışmaya başladı aşağıdakilerden hepsi:

  1. hata olarak System.Runtime Version 4.0 bir başvuru ekleyerek busağlanan ne
  2. çalıştı diyorve bu Question/Answer, 2.0 Derleyicileri yükleyerek.
  3. Görünümde System.Runtime öğesine bir el ile bir başvuru ekleme (Ben bu noktada biraz çaresiz kalıyordum).

System.ValueTuple NuGet paketini kaldırdığımda ve yeni Tuple kodunu açıkladığım anda, her şey daha önce olduğu gibi görünümlerde düzgün bir şekilde işlenir.

cevap

10

Aynı sorunu yaşıyordum. Projem için Microsoft.CodeDom.Providers.DotNetCompilerPlatform Nuget paketini (v1.0.3) ekledim ve tekrar çalışıyor!

+1

Bu işe yaradı. Teşekkürler!! – joshmcode

+0

Bu çalıştı ama aynı zamanda Microsoft.Net.Compilers paketi en son sürüme yükseltmek için gerekli, aksi takdirde – MattJeanes

+0

derleme sözdizimi hataları neden web.config yani