C# vNext can';在引用的包中看不到命名空间

C# vNext can';在引用的包中看不到命名空间,c#,asp.net,roslyn,asp.net-core,C#,Asp.net,Roslyn,Asp.net Core,Program.cs using System; using RazorEngine; namespace ConsoleApp1 { public class Program { public static void Main(string[] args) { string template = "Hello @Model.Name! Welcome to Razor!"; string resu

Program.cs

using System;
using RazorEngine;

namespace ConsoleApp1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string template = "Hello @Model.Name! Welcome to Razor!";
            string result = Razor.Parse(template, new { Name = "World" });
            Console.WriteLine(result);
            Console.WriteLine("Press enter to exit.");
            Console.ReadLine();
        }
    }
}
project.json

{
  "version": "1.0.0-*",
  "dependencies": {
    "RazorEngine": "3.4.2"
  },
  "commands": {
    "run": "run"
  },
  "frameworks": {
    "aspnet50": {},
    "aspnetcore50": {
      "dependencies": {
        "System.Console": "4.0.0-beta-*"
      }
    }
  }
}
当我运行
kpmbuild
时,我得到了这个输出(仅包括相关信息)


为什么即使正确地拉下RazorEngine NuGet包,并且
RazorEngine
名称空间存在,我也会得到这个编译错误?

我注意到,即使我得到了那个编译错误,如果我运行
k run
,它也会正常运行。因此,我意识到
aspnetcore50
框架无法构建,但我并不真正关心这一点,而且
aspnet50
框架编译得很好。因此,我修改了project.json文件以删除该框架,它成功了

{
  "version": "1.0.0-*",
  "dependencies": {
    "RazorEngine": "3.4.2"
  },
  "commands": {
    "run": "run"
  },
  "frameworks": {
    "aspnet50": {}
  }
}

若您仔细观察Razor.Parse方法,它会说以下内容

它适用于asp.net 5.0,但不适用于core

现在,如果从project.json中删除framework,那么它就可以工作了

   {
    "version": "1.0.0-*",
    "dependencies": {
        "RazorEngine": "3.4.2"
    },
    "commands": { 
        "run" : "run"
    },
    "frameworks" : {
        "aspnet50" : { }        
    }
}

RazorEngine.Core是否列在你的参考资料中?如果是这样的话,是用黄色还是红色的斜线划线?@JohnKoerner No。我所有的参考资料都列在上面。如果查看,
Razor
类不在
RazorEngine.Core
命名空间中(尽管它在该文件夹中)。我甚至没有在该项目中看到
RazorEngine.Core
名称空间。RazorEngine.Core是DLL的名称,而不是名称空间的名称。@JohnKoerner我试图将
RazorEngine.Core
添加为依赖项,但
无法找到RazorEngine.Core>=3.4.2
。如果
RazorEngine.Core
RazorEngine
的依赖项,那么
kpm restore
是否会自动将其拉入?谢谢,这是正确的。我比你早一点得出那个结论。然而,我没有方便的智能感知来告诉我这一点,因为我目前正在Mac上开发。使用命令行和升华文本。太好了。如果对你有用的话。Commandline很棒,它提醒了我,当我的内存有限的时候,我仍然需要编译C#程序。我想在MAC上探索vnext,但我没有:)使用OS X很好(我使用的是一台将近7年的MacBook),但它确实让你怀念Visual Studio。嘿,我们在Mac、iOS和Android上安装了Office。也许下一个微软会决定在OSX上做VS!
   {
    "version": "1.0.0-*",
    "dependencies": {
        "RazorEngine": "3.4.2"
    },
    "commands": { 
        "run" : "run"
    },
    "frameworks" : {
        "aspnet50" : { }        
    }
}