Kyl*_*son 79 c# asp.net iis asp.net-mvc
在Windows 2008 Server计算机上运行全新的ASP.NET MVC应用程序(直接从VS 2015社区)时,保持获得该错误.
Kyl*_*son 94
很多人都遇到了它,所以我想在这里发帖.
由于这个人找到了一个疯狂的简单解决方法:Expertdebugger.
只需将您的语言版本从C#6降级到C#5,如下所示:
<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.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089? warningLevel=”4? compilerOptions=”/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+”>
<providerOption name=”CompilerVersion” value=”v4.0?/>
</compiler>
</compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)
langversion:6将底部从6 更改为5 -langversion:5
为我修好了.谢谢他
chs*_*ord 73
如果您想使用C#6.0:
.config文件以执行以下修改.寻找system.codedom并修改它,使其看起来如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
Ali*_*uli 14
就我而言(在另一个系统中创建项目):
我可以运行这个项目。
就我而言,我使用的是错误的MSBuild.exe,该文件位于:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
Run Code Online (Sandbox Code Playgroud)
要解决该错误,我更新了PATH环境变量以开始使用Visual Studio 2017 MSBuild.exe:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSbuild.exe
Run Code Online (Sandbox Code Playgroud)
请查看此链接以获取详细信息: 错误CS1056:在tfs连续集成过程中运行msbuild的意外字符'$'
我发现我的错误的直接原因是:
这是有道理的,因为错误表明语言的选项无效.
但是,这之前工作正常 - 所以它一定是被选中的.改变了什么?我的团队成员升级到2017年,而我还在使用2015.在他对项目进行更改后,语言版本发生了变化,我收到了源代码控制的更改.但所选的版本不适用于我的vs版本,所以它是空白的 - 因此错误.在语言下拉列表中选择一个值后(我选择默认值),会弹出一个新错误.新错误导致使用较新版本的c#的任何代码行构建失败.我改变了代码来执行相同的功能,但我的c#语法和问题解决了.
因此,虽然错误的直接原因确实是语言版本的无效选择,但根本原因是由于不同的vs/c#版本冲突.
小智 8
就我而言,错误是:
错误CS1617 / langversion的选项'latest'无效;必须为ISO-1,ISO-2,默认值或1到6之间的整数。
我用记事本打开了.csproj文件,看到了这一行:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我将最新值更改为1到6范围内的整数
<LangVersion>6</LangVersion>
Run Code Online (Sandbox Code Playgroud)
错误消失了!
如果上述所有选项都不起作用,并且您使用了 Microsoft.Net.Compilers 和 CodeDom 等 nuget 包但仍然不起作用,那么您的项目文件打开项目文件存在问题。项目文件正在使用不支持您所选语言的编译器选项之一。使用记事本++打开项目文件并删除以下行。
原始项目文件
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.Net.Compilers.Toolset.3.7.0\build\Microsoft.Net.Compilers.Toolset.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.Toolset.3.7.0\build\Microsoft.Net.Compilers.Toolset.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.3.7.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.3.7.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
<!--Don't delete below one-->
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
Run Code Online (Sandbox Code Playgroud)
删除以下行
<Import Project="..\packages\Microsoft.Net.Compilers.Toolset.3.7.0\build\Microsoft.Net.Compilers.Toolset.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.Toolset.3.7.0\build\Microsoft.Net.Compilers.Toolset.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.3.7.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.3.7.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
Run Code Online (Sandbox Code Playgroud)
不要将语言版本从 6 更改为 5,而是将编译器标记上的“类型”属性从
Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Run Code Online (Sandbox Code Playgroud)
到
Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86499 次 |
| 最近记录: |