Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NET 5和RazorEngine-单元测试工作正常,但web API失败_Razor_Asp.net Core_Razorengine_.net 4.6 - Fatal编程技术网

NET 5和RazorEngine-单元测试工作正常,但web API失败

NET 5和RazorEngine-单元测试工作正常,但web API失败,razor,asp.net-core,razorengine,.net-4.6,Razor,Asp.net Core,Razorengine,.net 4.6,我有一个在ASP.NET 5中创建的Web API项目。Web API使用RazorEngine(v3.7.0)解析模板 解析逻辑在类库中。正是这个类库完成了实际的解析。web API调用此类库。具有解析逻辑的类的名称为TemplateParser,解析模板的方法的名称为Parse() 我有一个单元测试项目要调用TemplateParser.Parse()。这个单元测试工作得很好 但是,当我通过调用Web API调用相同的方法时,会出现下面提到的错误。错误是找不到System.Web.Razor

我有一个在ASP.NET 5中创建的Web API项目。Web API使用RazorEngine(v3.7.0)解析模板

解析逻辑在类库中。正是这个类库完成了实际的解析。web API调用此类库。具有解析逻辑的类的名称为TemplateParser,解析模板的方法的名称为Parse()

我有一个单元测试项目要调用TemplateParser.Parse()。这个单元测试工作得很好

但是,当我通过调用Web API调用相同的方法时,会出现下面提到的错误。错误是找不到System.Web.Razor程序集,版本3.0.0.0

发生System.IO.FileNotFoundException FileName=System.Web.Razor,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35

但是,为什么单元测试可以工作呢

我正在使用VS 2015社区版

为了调试,我使用F5运行WebAPI项目,然后从外部调用api。我对我的Web服务器使用“Web”选项(目前,我没有使用IIS express)


我在web api和类库中都使用了dnx46版本的框架。

将此添加到项目中project.json文件中的依赖项中,会出现以下错误:

"Microsoft.AspNet.Mvc.Razor":  "6.0.0-beta5" //or whichever version you want
编辑:


将其添加到项目中project.json文件中的依赖项中,会出现以下错误:

"Microsoft.AspNet.Mvc.Razor":  "6.0.0-beta5" //or whichever version you want
编辑:


Microsoft.AspNet.Mvc.Razor不可用。但是已经有对Microsoft.AspNet.Razor的引用。您确定要使用ASP.NET 5项目吗?好的,我通过从头创建一个新的ASP.NET5项目再次进行了测试。这一次,我确实看到了Microsoft.AspNet.Mvc.Razor,并将其包括在内。为了使其尽可能简单,我直接在API中添加了RazorEngine模板处理代码。但我仍然得到同样的错误。我对我的答案进行了编辑。是否在Startup.cs文件中设置了使用MVC的应用程序?是的,Startup.cs已设置为使用MVC。Microsoft.AspNet.MVC.Razor不可用。但是已经有对Microsoft.AspNet.Razor的引用。您确定要使用ASP.NET 5项目吗?好的,我通过从头创建一个新的ASP.NET5项目再次进行了测试。这一次,我确实看到了Microsoft.AspNet.Mvc.Razor,并将其包括在内。为了使其尽可能简单,我直接在API中添加了RazorEngine模板处理代码。但我仍然得到同样的错误。我对我的答案进行了编辑。在Startup.cs文件中是否有使用MVC的应用程序设置?是的,Startup.cs已设置为使用MVC。