我不断收到以下编译错误消息(“命名空间‘ServiceStack’中不存在类型或命名空间名称‘OrmLite’(您是否缺少程序集引用?)”)。这是在成功构建和发布 ServiceStack Web 应用程序之后(运行最新的 ServiceStack 版本 5.0.2 并使用 Servicestack VS Razor 和 Bootstrap 模板)。
编译错误消息有时仅在浏览到部署它的本地主机时在一段时间(例如 10 分钟)后才会出现。
为了解决,我已经尝试过
“/”应用程序中的服务器错误。 编译错误 描述:编译服务此请求所需的资源期间发生错误。请查看以下内容 具体错误详细信息并适当修改您的源代码。
编译器错误消息:CS0234:T类型或命名空间名称“OrmLite” 名称空间“ServiceStack”中不存在(您是否缺少 组装参考?)
Source Error: Line 20: using ServiceStack; Line 21: using ServiceStack.Html; Line 22: using ServiceStack.OrmLite; Line 23: using ServiceStack.Razor; Line 24: using ServiceStack.Text; Source File: d:\local\Temp\cuapf353.0.cs Line: 22
这应该在 MyGet 上的最新 v5.0.3 中得到解决(也可能在 NuGet 上的 v5.0.2 中)。这是由于 Razor 页面引用了 ServiceStack.Ormlite
但没有使用它。解决方法是从 Web.config 中的 Razor 命名空间中删除
ServiceStack.Ormlite
:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<pages pageBaseType="ServiceStack.Razor.ViewPage">
<namespaces>
<add namespace="System" />
<add namespace="System.Linq" />
<add namespace="ServiceStack" />
<add namespace="ServiceStack.Html" />
<add namespace="ServiceStack.Razor" />
<add namespace="ServiceStack.Text" />
<!-- add namespace="ServiceStack.OrmLite" / --> remove this
<add namespace="ProjectNamespace" />
<add namespace="ProjectNamespace.ServiceModel" />
</namespaces>
</pages>
</system.web.webPages.razor>