【发布时间】:2014-12-18 00:52:56
【问题描述】:
程序.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();
}
}
}
项目.json
{
"version": "1.0.0-*",
"dependencies": {
"RazorEngine": "3.4.2"
},
"commands": {
"run": "run"
},
"frameworks": {
"aspnet50": {},
"aspnetcore50": {
"dependencies": {
"System.Console": "4.0.0-beta-*"
}
}
}
}
当我运行 kpm build 时,我得到了这个输出(仅包含相关信息)
Building RazerEngineTester for Asp.Net,Version=v5.0
Using Project dependency RazerEngineTester 1.0.0
Source: /Users/mason/Desktop/Dot Net Solutions/RazerEngineTester/project.json
Using Package dependency RazorEngine 3.4.2
Source: /Users/mason/.kpm/packages/RazorEngine/3.4.2
File: lib/net45/RazorEngine.dll
Building RazerEngineTester for Asp.NetCore,Version=v5.0
Using Project dependency RazerEngineTester 1.0.0
Source: /Users/mason/Desktop/Dot Net Solutions/RazerEngineTester/project.json
Using Package dependency RazorEngine 3.4.2
Source: /Users/mason/.kpm/packages/RazorEngine/3.4.2
Program.cs(2,7): error CS0246: The type or namespace name 'RazorEngine' could not be found (are you missing a using directive or an assembly reference?)
为什么我得到这个编译错误,即使它正确地拉下 RazorEngine NuGet 包,并且according to the source code,RazorEngine 命名空间存在?
【问题讨论】:
-
RazorEngine.Core 是否列在您的参考文献中?如果是这样,它是用波浪形的黄色或红色线条下划线的吗?
-
@JohnKoerner 没有。我所有的参考资料都在上面列出。如果您查看source,
Razor类不在RazorEngine.Core命名空间中(尽管它在该文件夹中)。我什至在那个项目中都没有看到RazorEngine.Core命名空间。 -
RazorEngine.Core 是 DLL 的名称而不是命名空间的名称。
-
@JohnKoerner 我尝试将
RazoreEngine.Core添加为依赖项,但我得到了Unable to locate RazorEngine.Core >= 3.4.2。如果RazorEngine.Core是RazorEngine的依赖项,kpm restore不会自动将其拉入吗?
标签: c# asp.net roslyn asp.net-core