我即将将一些项目从.NET 4.0 MVC 3迁移到.NET 4.5.2 MVC5.
为了使这更容易,我创建了一个新的空白MVC项目来比较DLL引用和一些其他的东西,如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,PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/> </compilers> </system.codedom>
但是我不知道这是做什么的. MVC 3项目不包含这些部分.我的理解是和Roslyn有关系吗?
解决方法
这些设置用于
dynamic compilation.如果您进行预编译,并将编译的程序集放在Web服务器上,则可以将其从web.config中安全地删除.
参见The impact of multiple compiler definitions in system.codedom in web.config