Razor web.config错误 - 无法加载文件或程序集'Libdll.Namespace或其依赖项之一

时间:2014-03-15 05:25:22

标签: asp.net asp.net-mvc razor servicestack

我正在尝试添加自定义命名空间,以便在.cshtml Razor文件中,我不需要每次都使用我的模型。所以我有这样的事情:

<system.web.webPages.razor>
    <pages pageBaseType="ServiceStack.Razor.ViewPage">
    <namespaces>
        <!-- other entries -->

        <!--works-->
        <add namespace="Libdll" />

        <!-- exception for each -->
        <add namespace="Libdll.Customnamespace1" />
        <add namespace="Libdll.Customnamespace2" />
        <add namespace="Libdll.Customnamespace2.Subnamespace" />
    </namespaces>
    </pages>
    <!-- other data -->
</system.web.webPages.razor>

一切似乎都运行良好......唯一的问题是在网站启动期间,我在Global.asax的这一行得到例外:

protected void Application_Start(object sender, EventArgs e)
{
    new MyAppHost().Init(); // exception thrown here
}

例外是:

  

无法加载文件或程序集&#39; Libdll.Customnamespace1&#39;或其中一个   依赖。系统找不到指定的文件。

是的,我的命名空间是名为Libdll的DLL中的Libdll.Customnamespace1。如果我只使用Libdll作为命名空间,那就行了。

那么,我在web.config中缺少一些配置设置吗?或者这是与ServiceStack相关的具体问题?

1 个答案:

答案 0 :(得分:1)

上面的Razor配置允许您定义Razor页面中包含的C#名称空间。

默认情况下,ServiceStack的Razor会自动引用所有已加载的程序集,如果找不到它,则意味着它尚未加载,您应该可以通过在您的主机项目中引用它,例如:

var loadType = typeof(Libdll.Customnamespace.CustomType);
"Assembly {0} was loaded..".Print(loadType.Assembly.FullName);