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 に答える