2014-12-18 2 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

내가 kpm build를 실행하면, 나는이 출력을 얻을
{ 
    "version": "1.0.0-*", 
    "dependencies": { 
    "RazorEngine": "3.4.2" 
    }, 
    "commands": { 
    "run": "run" 
    }, 
    "frameworks": { 
    "aspnet50": {}, 
    "aspnetcore50": { 
     "dependencies": { 
     "System.Console": "4.0.0-beta-*" 
     } 
    } 
    } 
} 

(포함에만 관련 정보)

을에 네임 스페이스를 볼 수 없습니다
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 네임 스페이스가 있습니까?

+0

참조 용으로 RazorEngine.Core가 나열되어 있습니까? 그렇다면 노란색 또는 빨간색 줄무늬가있는 밑줄이 그어져 있습니까? –

+0

@ 존코너 (JohnKoerner) 아니오. [source] (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에서는 사용할 수 있지만 코어에서는 사용할 수 없습니다. 당신이 project.json에서 프레임 워크를 제거하는 경우

enter image description here

이제 그것은 작동합니다.

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

감사합니다. 올바른 내용입니다. 나는 그 결론에 조금 앞서 갔다. 그러나 필자는 현재 Mac에서 개발하고있는 것처럼 Intellisense를 사치스럽게 여길 수는 없다. 명령 행과 숭고한 텍스트 사용하기. – mason

+0

좋습니다. 그것이 당신을 위해 작동한다면. 커맨드 라인은 훌륭하고, 제한된 RAM을 가지고 C# program을 컴파일해야 할 때 생각 나게합니다. MAC에서 vnext를 탐색하고 싶지만, 아직 가지고 있지 않습니다 :) – dotnetstep

+0

OS X을 사용하는 것이 좋습니다. 오래된 맥북).하지만 실제로 비주얼 스튜디오를 그리워합니다. Mac, iOS 및 Android에서 Office가 있습니다. 어쩌면 다음 MS가 OS X에서 VS를 결정할 것입니다! – mason

0

컴파일 오류가 발생하더라도 k run을 실행하면 정상적으로 실행됩니다. 그렇다면 aspnetcore50 프레임 워크가 빌드에 실패했음을 깨달았습니다. 그러나 어쨌든 그 프레임을 신경 쓰지 않았고 aspnet50 프레임 워크가 제대로 컴파일되었습니다. 그래서 project.json 파일을 수정하여 해당 프레임 워크를 제거하고 작동했습니다.

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