Servicestack - OrmLite 不是 ServiceStack 命名空间的一部分

Servicestack - OrmLite not part of the ServiceStack namespace

我不断收到以下编译错误消息(“类型或命名空间名称 'OrmLite' 在命名空间 'ServiceStack' 中不存在(是否缺少程序集引用?)”)。这是在成功构建和发布 ServiceStack 网络应用程序之后(运行 最新的 ServiceStack 版本 5.0.2 并使用 Servicestack VS Razor 和 Bootstrap 模板)。

编译错误消息有时只在浏览到部署它的本地主机后一段时间(例如 10 分钟)后出现。

解决,我试过

Server Error in '/' Application. Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0234: The type or namespace name 'OrmLite' does not exist in the namespace 'ServiceStack' (are you missing an assembly reference?)

    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

这应该在最新的 v5.0.3 on MyGet 中得到解决(可能也在 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>