1

MVC3 プロジェクトを問題なく MVC4 にアップグレードしましたが、NHibernate を参照しているものがあるため、Web API (これを行った理由) が機能していません。

<Exception>
  <ExceptionType>System.IO.FileNotFoundException</ExceptionType>
  <Message>Could not load file or assembly 'NHibernate, Version=3.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4' or one of its dependencies. The system cannot find the file specified.</Message>
  <StackTrace>
     at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes)
     at System.Reflection.RuntimeAssembly.GetExportedTypes()
     at System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)
     at System.Web.Http.WebHost.WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)
     at System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache()
     at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue()
     at System.Lazy`1.get_Value()
     at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache()
     at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue()
     at System.Lazy`1.get_Value()
     at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage request)
     at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage request, CancellationToken cancellationToken)
     at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
  </StackTrace>
</Exception>

FunnelWeb ブログを自分のサイトに追加しようとしたため、NHibernate への参照を削除しましたが、同じプロジェクトで 2 つのまったく異なるプラクティスが発生し、まったく気に入らなかったのです。

また、知っておくべきことを隠してしまうので、NHibernate ライブラリを再び配置するのは良い考えではないと思います。

NDepend を試してみましたが、NHibernate が見つかりませんでした。

私のプロジェクトは正常にコンパイルおよび実行されていることに注意してください。アイデアはありますか?

4

2 に答える 2

1

bin ディレクトリを消去しようとしましたか?

于 2012-08-21T21:01:56.623 に答える
0

解決策は明白なものでした。NHibernate を参照している FunnelWeb のくだらない dll がありました。

于 2012-08-21T20:52:29.647 に答える