2014-12-18 1 views
-1

Program.csvNext не может видеть пространство имен в ссылочного пакете

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-*" 
     } 
    } 
    } 
} 

Когда я бегу 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 co co правильно, и according to the source code, существует пространство имен RazorEngine?

+0

Является ли RazorEngine.Core перечисленным в ваших ссылках? Если да, то подчеркивается ли это красно-желтыми или красными линиями? –

+0

@JohnKoerner No. Все мои ссылки перечислены выше. Если вы посмотрите на [источник] (https://github.com/Antaris/RazorEngine/blob/master/src/source/RazorEngine.Core/Razor.cs), класс 'Razor' не находится в' RazorEngine.Core' пространство имен (хотя оно находится в этой папке). Я даже не вижу пространство имен RazorEngine.Core в этом проекте. – mason

+0

RazorEngine.Core - это имя DLL, а не имя пространства имен. –

ответ

2

если вы внимательно посмотрите на метод Razor.Parse, он скажет следующее.

Он доступен для asp.net 5.0, но не для ядра.

enter image description here

Теперь, если вы удалите рамки из project.json то он будет работать.

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

Спасибо, это правильно. Я пришел к такому выводу немного впереди вас. Тем не менее, у меня нет роскоши удобного Intellisense, чтобы сказать мне, что, поскольку я развиваюсь на своем Mac на данный момент. Использование командной строки и Sublime Text. – mason

+0

Отлично. Если это сработает для вас. Командная строка замечательная, и она напоминает мне, когда у меня ограничена оперативная память, еще нужно скомпилировать программу на C#. Я хочу изучить vnext на MAC, но у меня ее нет :) – dotnetstep

+0

Приятно использовать OS X (я нахожусь почти на 7 летний MacBook), но это действительно заставляет вас пропустить Visual Studio. Эй, мы получили Office на Mac, iOS и Android. Возможно, следующая MS решит сделать VS на OS X! – mason

0

Я заметил, что, хотя я получил эту ошибку компиляции, если я запустил k run, тогда она будет работать должным образом. Итак, я понял, что фреймворк aspnetcore50 не смог построить, но мне все равно это не понравилось, и что структура aspnet50 скомпилирована просто отлично. Поэтому я изменил файл project.json, чтобы удалить эту структуру, и она сработала.

{ 
    "version": "1.0.0-*", 
    "dependencies": { 
    "RazorEngine": "3.4.2" 
    }, 
    "commands": { 
    "run": "run" 
    }, 
    "frameworks": { 
    "aspnet50": {} 
    } 
} 
Смежные вопросы