Attualmente il mio motore di visualizzazione del rasoio genera e errore "Si prega di utilizzare la lingua versione 6 o successiva". Quello potrebbe essere solo un resharper che mi dà un puntatore. Ma come faccio a usare il rasoio C# 6.0. Resto della mia soluzione nei file cs posso usare tutte le nuove funzionalità della versione 7.Come rendere il motore di visualizzazione del rasoio per utilizzare C# 6.0
risposta
Se si sta eseguendo questo da un progetto 4.5.1
, l'aggiornamento a 4.5.2
potrebbe risolvere il problema.
In caso contrario, si consiglia di installare questo pacchetto NuGet offrire le nuove funzionalità: Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Così facendo qualcosa di simile:
<p>@Model.Person?.Name</p>
potrebbe funzionare. In caso contrario, cercare di essere esplicito in questo modo:
<p>@(Model.Person?.Name)</p>
Credo che questo è dovuto a un bug nei modelli per web.config
quando il progetto viene aggiornato a una versione più recente di .NET Framework.
sono stato in grado di risolvere questo problema andando a web.config
, trovando il nodo system.codedom
, e cambiando il contenuto di simile a questa:
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
Microsoft.Net.Compilers e Microsoft.CodeDom.Providers.DotNetCompilerPlatform deve essere installato per funzionare – Anytoe
(Re-) L'installazione dei due pacchetti precedenti aggiungerà questa sezione al file .config. –
Sì, grazie @Alen, e ho scoperto che basta installare Nuget pkg per Microsoft.CodeDom.Providers.DotNetCompilerPlatform poiché Microsoft.Net.Compilers è una dipendenza. –
Le migliori istruzioni passo-passo che ho trovato per abilitare Le caratteristiche di C# 6 nei modelli RazorEngine sono qui: https://github.com/Antaris/RazorEngine/issues/363#issuecomment-273106183
Ciò che non è menzionato in c'è per assicurarsi che quando si aggiunge la sezione di compilatori al proprio app.config, che il numero di versione corrisponda alla versione dal pacchetto che si sta installando. Nel commento è stato la versione 1.0.3, ma il pacchetto che ho installato avuto 1.0.4, invece, in modo che doveva assomigliare a questo:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
</compilers>
altre risposte sono abbastanza buoni, ma ho trovato un il bene e il breve articolo che chiarire definitivamente i passi di questo problema: https://cpratt.co/using-csharp-6-or-7-with-mvc-5/
In breve:
Nella console di Package manager installare 012.393.750.967.
Checka/altera si web.config con le seguenti righe alla fine:
<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:1659;1699;1701" /> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:15 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /> </compilers> </system.codedom>
- 1. installazione del motore di visualizzazione del rasoio per Visual Studio
- 2. Modulo Web Visualizza motore e motore di visualizzazione del rasoio nello stesso progetto
- 3. Classi nel modello di motore per rasoio
- 4. Intellisense motore di visualizzazione a rasoio non funziona VS 2010
- 5. utilizzando la variabile javascript in MVC3 Motore di visualizzazione del rasoio
- 6. Rasoio MVC 3 - Come impedire al motore di visualizzazione di cercare le pagine aspx e ascx?
- 7. ASP.NET MVC C# Minificazione del rasoio
- 8. come aggiungere lunghezza massima per TextAreaFor in Visualizza utilizzando il motore del rasoio
- 9. Android: "Impossibile inizializzare il motore di visualizzazione"
- 10. Come utilizzare il middleware da un motore in un motore
- 11. Documentazione di riferimento per il rasoio ASP.NET
- 12. sintassi del rasoio corretta per l'istruzione switch all'interno di foreach
- 13. Errore di compilazione del rasoio con NancyFX
- 14. Svantaggi del motore di visualizzazione di Webforms ASP.net MVC?
- 15. È possibile rendere facoltative le sezioni del rasoio?
- 16. C# 6.0 TFS Builds
- 17. Nodo, Angolare, Express e il motore di visualizzazione
- 18. Unità testare le visualizzazioni del rasoio
- 19. Produce dinamicamente le visualizzazioni del rasoio in fase di runtime?
- 20. ASP.NET MVC 4 Visualizzazione del rasoio non riconoscendo Dropdownlist per HTML Helper
- 21. Quali classi e funzioni C# possono essere utilizzati nel rasoio?
- 22. Formattazione condizionale in una visualizzazione indice del rasoio
- 23. Visualizzazione basata su rasoio non vede gruppi di riferimento
- 24. È possibile utilizzare il motore di visualizzazione Razor 2.0 in mono?
- 25. Usa il rasoio per generare il codice?
- 26. Come posso eseguire il debug di viste del rasoio mvc4?
- 27. Test unità MVC3 Assistenti per il rasoio/viste senza stringhe
- 28. Come utilizzare Exception Manager Enterprise Library 6.0
- 29. Come utilizzare il motore Micro-Templating JavaScript di John Resig?
- 30. Quali sono i pochi vantaggi del motore di visualizzazione Razor rispetto ad altri motori di visualizzazione
possibile duplicato del [C# 6.0 Caratteristiche che non funzionano con Visual Studio 2015] (http://stackoverflow.com/questions/27968963/c-sharp-6-0-funzioni-non-working-with-visual-studio-2015) – cadrell0
no - questa soluzione non ha risolto questo problema. – MoXplod