ServiceStack中的Razor依赖问题

本文关键字:问题 依赖 Razor 中的 ServiceStack | 更新日期: 2023-09-27 17:53:52

我正在尝试将应用程序升级到ServiceStack 4,但我在Web.config中引用System.Web.WebPages.Razor时出现错误:

无法加载文件或程序集"System.Web.WebPages"。Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件

有问题的引用与各种ServiceStack示例中包含的引用完全相同:

 <compilation targetFramework="4.5" debug="true">
   <assemblies>
     <add assembly="System.Web.WebPages.Razor, 
          Version=1.0.0.0, 
          Culture=neutral, 
          PublicKeyToken=31BF3856AD364E35"/>
   </assemblies>
   ...

我试着运行官方示例(Razor RockStar和EmailContacts),但当我运行它们时,我也得到了相同的错误。

如果我将库声明改为使用Version=2.0.0.0,我不会得到任何错误。

我的问题是:

是错误的例子,他们应该被移动到2.0.0.0以及还是我做错了什么?

我的设置:

  • Windows 8.1 Pro x64
  • Visual Studio 2013 Pro
  • 针对。net 4.5, x86的应用程序
  • ServiceStack 4.0.15

ServiceStack中的Razor依赖问题

剃刀网。由ServiceStack添加的config节。Razor通常使用ASP版本。.NET网页安装在您的计算机上,包含在VS.NET安装和更新中,通常位于:

C:'Program Files (x86)'Microsoft ASP.NET'ASP.NET Web Pages'

保存不同版本的ASP。. NET网页安装,例如:

v1.0'
v2.0'

另一个安装ASP的选项。. NET网页是通过NuGet,即:

PM> Install-Package Microsoft.AspNet.WebPages

这将安装最新版本的WebPages,目前是v3.1.1,这意味着你需要在Web中更改版本号。config to Version=3.0.0.0.

您可以安装特定的1.0.0.0版本的ASP。. NET网页:

PM> Install-Package Microsoft.AspNet.WebPages -Version 1.0.20105.408

只使用配置部分

ServiceStack不使用WebPages实现本身,配置主要是为了保持VS.NET的智能感知,以及提供一种方法来配置添加到Razor页面的默认名称空间。

虽然这也可以通过添加到Config.RazorNamespaces集合来在代码中完成,但是将它们添加到配置部分可以让VS.NET知道它们,这样您就可以获得适当的智能感知,否则它不会对运行时页面的执行产生任何影响。