Страница бритвы mvc3 не находит Пространство имен - PullRequest
0 голосов
/ 22 февраля 2012

Я читал много подобных вопросов, но не могу решить свою конкретную проблему ... В моем проекте 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 наверняка находится в папке / bin веб-приложения, и, удаляя объявление в файле web.config, я рекомендую использовать его во всем проекте, но на странице представлений. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Я понял!Это не проблема зависимостей, не проблема объявления сборки или пространства имен где-то ... просто эта библиотека по какой-то причине не копируется в папку bin при сборке проекта!Или, что еще лучше, причина в том, что для свойства «Копировать локальное» в указанной библиотеке задано значение «ложь», но я понятия не имею, почему: все остальные сторонние библиотеки, с которыми я пытался работать, не имеют такого поведения ...

0 голосов
/ 22 февраля 2012

Есть несколько возможных проблем:

  1. MailBee.Net.dll имеет зависимость / требование от другой библиотеки DLL, которой нет в вашем решении.
  2. MailBee.Net.dll не та же версия x86 / x64, как у вашего проекта / хостинга (visual studio / iis express)

Кроме того, в вашем файле web.config, расположенном в каталоге Views , вы должны добавить что-то вроде следующего:

<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>
...