作者: 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:\VS2017\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.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 。

参考文献

[C#] VS2017中在某些目录下使用不了 .NET Core 2.0 问题的处理办法的更多相关文章

  1. python中获取指定目录下所有文件名列表的程序

    http://blog.csdn.net/rumswell/article/details/9818001 # -*- coding: utf-8 -*-#~ #------------------- ...

  2. [Java] 在 jar 文件中读取 resources 目录下的文件

    注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...

  3. IDEA中读取 resource目录下文件

    1. 资源文件 2. 加载文件 public void test() { try { System.out.println("begin test"); String filepa ...

  4. C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)

    //遍历一个目录下所有的文件列表,代码实例 DirectoryInfo dir = new DirectoryInfo(folderName);var list = GetAll(dir); /// ...

  5. 在android工程中,res目录下又有anim、drawable、layout、menu、raw、values和xml文件夹,分别用来保存?

    res目录主要是存放资源文件的!layout 布局 这个就是你经常看到的与用户交互的界面的 xml 文件,就是各个 view 的排列和嵌套,没什 么好说的啦 风格和主题. 风格主要是指 view 的显 ...

  6. linux中rc.d目录下的文件

    参考 http://blog.sina.com.cn/s/blog_414d78870102vqj5.html http://www.360doc.com/content/12/0820/17/933 ...

  7. 在Maven项目中添加代码目录下的配置文件

    问题 Maven 是约定大于配置的一种工具, 通常约定在 src/main/resources 目录下放配置文件, 当我们想要在 src/main/java 代码目录下放置配置文件用来测试, Mave ...

  8. Java中读取某个目录下的所有文件和文件夹

    import java.io.File; public class Test1 { public static void main(String[] args) { String path=" ...

  9. Windows10 中在指定目录下启动Powershell

    (1)首先进入该目录: (2)按住shift键,且同时在该目录空白处鼠标右击,打开右键菜单: (3)此时可以发现,在右键菜单中,多了一项,叫做[在此处打开Powershell窗口(s)],点击该项: ...

随机推荐

  1. 065 updateStateByKey的函数API

    一:使用场景 1.应用场景 数据的累加 一段时间内的数据的累加 2.说明 每个批次都输出自己批次的数据, 这个时候,可以使用这个API,使得他们之间产生联系. 3.说明2 在累加器的时候,起到的效果和 ...

  2. POJ 3237 Tree 【树链剖分】+【线段树】

    <题目链接> 题目大意: 给定一棵树,该树带有边权,现在对该树进行三种操作: 一:改变指定编号边的边权: 二:对树上指定路径的边权全部取反: 三:查询树上指定路径的最大边权值. 解题分析: ...

  3. Dijkstra算法之 Java详解

    转载:http://www.cnblogs.com/skywang12345/ 迪杰斯特拉算法介绍 迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径. 它的主 ...

  4. hadoop安装过程中出现的错误

    此次来记录一下我在安装Hadoop安装过程中出现的错误,安装过程参照慕课网林子雨教程进行安装,在尝试过程中出现的错误如下: 1.在安装Ubuntu时,新建虚拟电脑时,并没有在版本的输入框中有Ubunt ...

  5. C# Upload

    using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Web; ...

  6. css3组件之几何图形

    一.平行四边形 1.实心无边框 #parallelogram { width: 150px; height: 100px; -webkit-transform: skew(20deg); -moz-t ...

  7. Standford CoreNLP使用

    1.官网https://stanfordnlp.github.io/CoreNLP/ 2. 待续...

  8. node cluster模块,仿多线程并发调用,

    worker.js var cluster = require('cluster')function fibo(n) { return n == 0 ? 0 : n > 1 ? fibo(n - ...

  9. React Native升级目标SDK

    React Native升级目标SDK 打开在 android/app/的build.gradle 找到 android { } 区块 改变以下属性 compileSdkVersion 26 buil ...

  10. 【学习笔记】python2的print和python3的print()

    python2.x和3.x中的输出语句有着明显不同 2.x中的print不是个函数,输出格式如下 Python 2.7.12+ (default, Aug 4 2016, 20:04:34) [GCC ...