(這是怎樣的一個後續行動,我的問題「How to use C# 6 with Web Site project type?」的)如何在Web應用程序中使用C#7 ASPX代碼 - 頁面之前?
我試圖用C#7特點與Visual Studio 2017年
對於這一點,我已經更新的Microsoft.Net.Compilers
NuGet package to v2.0.0-rc4我現有的ASP.NET WebForms 4.6.2應用程序。
這似乎從Visual Studio中很好地工作2017年
當部署到我的網站,我看到的是死亡的黃屏:
編譯器錯誤,錯誤代碼255
[詳細編譯器輸出]
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.6.1590.0
完整的編譯器源太長,無法在此張貼(超過30k字符),I've uploaded it to Pastebin。
我的問題:
是否有任何機會,以使用ASP.NET WebForms的Web應用程序中最新的羅斯林編譯器?
更新1:
當然,我已經包括了Microsoft.CodeDom.Providers.DotNetCompilerPlatform
NuGet包和web.config中的條目,as described here。
<system.codedom>
<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>
</system.codedom>
我甚至試着在上面的XML沒有不同的結果改變/langversion:6
參數/langversion:7
。
更新2:
可能的問題和答案將是使用C#7特點從.cshtml剃刀內的文件ASP.NET MVC的觀點中的相似。
更新3:
我已經通過事件日誌挖發現這些(德制,不好意思):
Anwendung: csc.exe Frameworkversion: v4.0.30319 Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet. Ausnahmeinformationen: System.IO.FileLoadException bei Microsoft.CodeAnalysis.CommandLine.BuildClient.GetCommandLineWindows(System.Collections.Generic.IEnumerable'1<System.String>) bei Microsoft.CodeAnalysis.CommandLine.DesktopBuildClient.Run(System.Collections.Generic.IEnumerable'1<System.String>, System.Collections.Generic.IEnumerable'1<System.String>, Microsoft.CodeAnalysis.CommandLine.RequestLanguage, Microsoft.CodeAnalysis.CommandLine.CompileFunc, Microsoft.CodeAnalysis.IAnalyzerAssemblyLoader) bei Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(System.String[], System.String[]) bei Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(System.String[])
和:
Exception information: Exception type: HttpCompileException Exception message: Eine externe Komponente hat eine Ausnahme ausgelöst. bei System.Web.Compilation.AssemblyBuilder.Compile() bei System.Web.Compilation.BuildProvidersCompiler.PerformBuild() bei System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed) bei System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories) bei System.Web.Compilation.BuildManager.CompileResourcesDirectory() bei System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() bei System.Web.Compilation.BuildManager.CallAppInitializeMethod() bei System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)
錯誤代碼255是一個流行的錯誤,[這裏](http://stackoverflow.com/questions/33989211/another-strange-asp-net-error-the-compiler-failed-with-error-code- 255)是一對夫婦的建議 – maccettura
@UweKeim啊,這個更新有一點幫助。 –
如果您想使用C#7功能,您可能需要考慮從WebForms移動到MVC 6。 C#7的好處大於嘗試使用WebForms工作的維護開銷?切換堆棧可能會更好。 –