0

我在那里阅读了很多类似的问题,但我无法解决我的特定问题......在我的 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 文件中的声明,我会在所有项目中使用它,但在视图页面中。任何想法?

4

2 回答 2

0

有几个可能的问题:

  1. MailBee.Net.dll 对不在您的解决方案中的另一个 dll 有依赖性/要求。
  2. MailBee.Net.dll 与您的项目/托管解决方案 (visual studio/iis express) 的 x86/x64 版本不同

此外,在位于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>
于 2012-02-22T16:55:36.593 回答
0

我知道了!这不是依赖关系的问题,也不是在某处声明程序集或命名空间的问题......只是那个库,由于某种原因,在构建项目时没有复制到 bin 文件夹中!或者更好的是,原因是引用库上的属性“复制本地”设置为false,但我不知道为什么:我尝试过的所有其他第三方库都没有这种行为......

于 2012-02-23T09:57:09.393 回答