相关疑难解决方法(0)

在asp.net应用程序中启用c#7

我刚刚开始在Visual Studio 2017中使用我的旧解决方案.只需打开旧IDE中的解决方案即可无缝工作.c#应用程序项目现在默认为c#7.0编译器.这些项目的属性页面(编译/高级)可以轻松选择编译器的目标语言版本,默认为最新版本.

我找不到在asp.net web项目中启用c#7.0的方法.如果我写一个如下声明:

if (int.TryParse("1", out int myInt)) { ... }
Run Code Online (Sandbox Code Playgroud)

IDE警告我说我需要使用该语言的7+版本.

我对这个主题的研究表明,我应该定位web.config文件的system.codedom编译器区域中的特定c#版本,以便定位最新的Roslyn版本.

我现在拥有的是:

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
Run Code Online (Sandbox Code Playgroud)

针对c#6的目标是什么.只要我已经使用nuget下载了最新的Roslyn,c#7的正确设置是什么?

更新 下面是Web项目可用的编译选项的屏幕截图(它是意大利语VS2017,但应该很容易理解).没有可能在那里选择目标c#版本.

编译选项

c# asp.net c#-7.0 visual-studio-2017

53
推荐指数
4
解决办法
2万
查看次数

更新 .Net Framework 版本(4.6.2 到 4.7.2)后无法评估 GetPathsOfAllDirectoriesAbove()

我一直在做的一个项目从 .NET Framework 4.6.2 升级到 4.7.2。在构建时,在不是我的代码的文件中,我收到以下错误:

在此处输入图片说明

我还在项目属性的构建选项卡中看到了相同的错误。

[2]

我不知所措 - 我已经搜索了错误并且结果是空的。有没有人遇到过和/或解决过这个问题?

.net c# msbuild visual-studio

40
推荐指数
3
解决办法
2万
查看次数

/langversion 的选项“7.3”无效;必须是 ISO-1、ISO-2、默认值或 1 到 6 范围内的整数

我正在使用 Visual Studio 17(版本 15.8.5),我的项目面向 .NET Framework 4.8,我尝试设置 C# 版本以使用(通过“属性”窗口中的“构建”选项卡)C# 7.3(这是可以从下拉列表)。但是,构建项目会报告问题标题中的失败。我甚至试过7.0C# latest minor version,所有这些报告故障也是如此。

貌似环境支持最高版本6(C#6.0)?

我试过安装两者Microsoft.Net.Compilers v3.6.0Microsoft.Net.Compilers.Toolset v3.6.0但它没有改变。

我想像以下简单代码一样使用模式匹配功能:

object o ...
if(o is int c){
    //do something with c (cast to int) ...
}
Run Code Online (Sandbox Code Playgroud)

更新

奇怪的是,如果我创建一个全新的 ASP.NET MVC 项目,它只是使用 C# 7.3 集编译正常。所以看起来我正在处理的特定项目有问题。为了更好的诊断,我想通过这个链接在这里分享这个项目https://sites.google.com/site/ngaodaantoi/files/WebApiAuth.zip?attredirects=0&d=1

建议您使用 VS 2017 来帮助可能重现该问题。

c# asp.net-mvc c#-7.0 visual-studio-2017

5
推荐指数
3
解决办法
7599
查看次数