我在那里读了很多类似的问题,但我无法解决我的特殊问题......
在我的MVC3项目中,我使用外部库。我可以在任何地方使用这个库,但不能在我的剃刀视图中使用
所以,在SO上阅读一些类似的问题,我发现我应该将这个库注册到<system.web><compilation><assemblies>
部分。
为了做到这一点,我最终得到了像我这样的web.config的一部分
<compilation debug="true" targetFramework="4.0">
<assemblies>
... <!-- default assembly registration, like System.Web.something -->
<add assembly="MailBee.Net.dll, Version=7.1.4.348, Culture=neutral, PublicKeyToken=cd85b70fb26f9fc1" />
</assemblies>
</compilation>
但仍然无法工作......或者更确切地说,这在运行时分解了所有项目。如果我启动该项目,它会崩溃告诉我Impossibile to load assembly 'MailBee.Net.dll, Version=7.1.4.348, Culture=neutral, PublicKeyToken=cd85b70fb26f9fc1' or one of its dependency
dll肯定是在Web应用程序的/ bin文件夹中,并删除web.config文件中的声明,我在所有项目中但在视图页面中使用它。
有什么想法吗?
答案 0 :(得分:0)
有一些可能的问题:
此外,在位于 Views 目录中的web.config文件中,您应该添加如下内容:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,
System.Web.Mvc,
Version=3.0.0.0,
Culture=neutral,
PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage" />
<namespaces>
<add namespace="<NamespaceYouNeedInYourViews>" />
</namespaces>
</pages>
</system.web.webPages.razor>
答案 1 :(得分:0)
我明白了! 这不是依赖关系的问题,也不是在某处声明程序集或命名空间的问题......只是因为某些原因,在构建项目时,该库未被复制到bin文件夹中! 或者更好的是,原因是引用库上的“复制本地”属性设置为false,但我不明白为什么:我尝试过的每个其他第三方库都没有这种行为......