ScottGu의 블로그 게시물 (페이지에서 "8026"검색)에 대한 의견에서 가져온 가능한 해결책 :
솔루션 제안 1 (David Taylor)
다음 RTM 코드 dom 요소를 web.config에 추가하십시오.
<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>
그런 다음 Roslyn 및 Microsoft.CodeDom.Providers. *. dll 항목을 BIN 디렉터리에 추가합니다.
설정하기는 쉽지만 VS 2015 RTM에서 새 "웹 사이트"를 만들 때 .NET 4.6을 선택하면 기본 템플릿이 설정되지 않은 것이 이상합니다.
솔루션 제안 2 (Martin)
위의 David Taylor의 설명에 더해, TargetFramework를 기본 v4.5.2로 사용하여 웹 앱을 만들 때 system.codedom 설정이 올바른 것처럼 보입니다. TargetFramework를 v4.6으로 변경하면 CSharp의 컴파일러 설정이 문제를 일으키는 방식으로 수정되는 것처럼 보입니다.
내 해결 방법은 다음과 같습니다.
- 파일 / 새로 만들기 /ASP.NET 웹 응용 프로그램
- ASP.NET 4.5.2 템플릿에서 "웹 API"템플릿을 선택합니다.
- web.config에서 system.codedom 요소 (및 해당 콘텐츠)의 복사본을 가져옵니다.
- Properties / TargetFramework를 사용하여 Target Framework를 4.6으로 설정합니다.
- web.config의 수정 된 system.codedom 요소를 TargetFramework를 변경하기 전에 가져온 복사본으로 바꿉니다.
- 히트 F5
홈 페이지가 예상대로로드되어야합니다.
참고로, TargetFramework를 v4.6으로 변경 한 직후 system.codedom 콘텐츠. 다음과 같습니다 ( "Microsoft.CSharp.CSharpCodeProvider"유형의 사용에 유의하십시오).
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">
<providerOption name="CompilerVersion" value="v4.0"/>
</compiler>
<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>