VS 2014 CTP没有';无法识别mscorlib中的命名空间

本文关键字:识别 mscorlib 命名空间 CTP 2014 没有 VS | 更新日期: 2023-09-27 18:21:51

我在windows 8.1虚拟机中安装了vs 2014 ctp 3。并尝试创建一个vnext库。正如我在代码中添加的使用语句:

using System.Diagnostics;  
using System.Threading.Tasks;
public Task Log(LogLevel level, IFormatProvider formatProvider, string message, params object[] args)  
{
    return Task.Run(() =>  
    {  
        if (IsLogLevelEnabled(level))  
        {  
            string category = Enum.GetName(typeof(LogLevel), level);  
            string info = string.Format(message, args);  
            Debugger.Log((int)level, category, info);  
        }  
    });  
}  

"Debugger.Log"确实提供了代码智能,这可能意味着vs在mscorlib中找到了引用。如果我按"F12",vs将导航到mscorlib.dll中调试器的代码。然而,当我尝试构建项目时,它总是抛出:

名称"Debugger"不在当前上下文中。

我尝试在project.json中添加引用,但是没有"System.Diagnostics"可供参考。如果我在project.json中写了"System.Diagnostics":",那么在project的引用中就会出现警告。

我该怎么办?提前谢谢。

VS 2014 CTP没有';无法识别mscorlib中的命名空间

如果您有CTP3模板提供的默认project.json,那么您就定义了k10(CoreCLR)目标框架,以及良好的旧net451。Debugger类在k10目标框架中没有这个方法(不要问我为什么),因此不会构建。从project.json中删除k10目标,它就会构建,但现在只面向net451。

您的项目总是朝着net451构建,然而,VS14并不能为您提供一个很好的方法来查看哪个目标框架失败了。希望他们能尽快添加此功能。

这个项目.json构建:

{
    "dependencies": {
        "System.Diagnostics": "",
        "System.Threading": ""
    },
    "frameworks" : {
        "net451" : { 
            "dependencies": {
            }
        }
    }
}

这不会构建:

{
    "dependencies": {
        "System.Diagnostics": "",
        "System.Threading": ""
    },
    "frameworks" : {
        "net451" : { 
            "dependencies": {
            }
        },
        "k10" : { 
            "dependencies": {
                "System.Runtime": "4.0.20.0"
            }
        }
    }
}