zoukankan      html  css  js  c++  java
  • [C#] VS2017中在某些目录下使用不了 .NET Core 2.0 问题的处理办法

    作者: zyl910

    一、缘由

    最近遇到了一个奇怪的问题——明明已经在VS2017里装好了 .NET Core 2.0 SDK,且测试过新建一个 .NET Core 2.0控制台项目能成功使用。但是在项目目录中实际使用新建.NET Core 2.0控制台项目时,会遇到不支持 .NET Core 2.0 的错误提示。

    Severity    Code    Description    Project    File    Line    Suppression State
    Error        The current .NET SDK does not support targeting .NET Core 2.0.  Either target .NET Core 1.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.0.    ConsoleExample.netcore20    C:VS2017MSBuildSdksMicrosoft.NET.SdkuildMicrosoft.NET.TargetFrameworkInference.targets    112    
    

    而且此时项目属性里,“目标框架”下拉框的当前值变为空。该下拉框中只能选 1.0、1.1 这2个版本。

    曾经怀疑是不是 .NET Core 2.0 SDK文件被破坏了。但发现其他目录下的 .NET Core 2.0 项目打开正常。

    二、解决

    找来找去,发现上上级目录中有一个 global.json。于是猜测是该文件的问题,尝试将该文件删除到回收站。果然,删掉该文件后,VS2017就能正常使用 .NET Core 2.0 了。

    global.json 是 VS2015 + .NET Core 1.0 SDK 时代的配置文件,VS2017中已经不用该文件了。且该文件位于上上级目录,本来以为它不会影响VS2017项目,结果还是被影响了。

    三、处理 global.json

    但是删除 global.json后,VS2015中的 .NET Core 1.0 项目会报错——

    The following error occurred attempting to run the project model server process (2.0.0). 
    
    Unable to start the process. No executable found matching command "dotnet-projectmodel-server"
    
    The project model server process provides intellisense, build, and reference information to Visual Studio and without it your experience will be very limited. Please try closing and reopening Visual Studio to see if that corrects the problem. Alternatively, check that the .NET Core SDK is properly installed."
    

    这里有2个办法——

    1. 将解决方案中的 .NET Core 1.0 的 sln、global.json 抽离出去。移到某个子目录去。然后在该子目录另外新建专用的解决方案,注意修改project.json 来引用上级兄弟目录中的文件。详见 《[C#] .NET Core项目修改project.json来引用其他目录下的源码等文件的办法 & 解决多框架时 project.json 与 app.config冲突的问题》。
    2. 干脆不用 .NET Core 1.0。全部升级为 VS2017 + .NET Core 2.0 。

    参考文献

  • 相关阅读:
    闲谈系列之一——数据库主键GUID
    一个简单通用权限管理系统,求各位帮忙看看
    php 计算指定年份的周总数与及第几周的开始日期和结束日期(从周一开始)
    创建虚拟机流程详细过程链接
    阿里云CDN加速设置
    sublime Text3 快捷键
    Linux命令(centos7)
    分布式数据库
    mysql 分区和分表
    Linux crontab 命令格式与详细例子
  • 原文地址:https://www.cnblogs.com/zyl910/p/dotnet_core_vs2017_notfound_sdk2.html
Copyright © 2011-2022 走看看