5

NHUnspell NuGet パッケージを使用する ASP.NET/MVC Web ロールがあります。実行しようとすると、次のエラー メッセージが表示されます。

Could not load file or assembly 'Hunspellx64.dll' or one of its dependencies. The module was expected to contain an assembly manifest.

私の知る限り、私の Web ロール プロジェクトはアンマネージ Hunspellx64.dll をロードしようとするべきではないため、これは奇妙です。これは、マネージ NHUnspell DLL によって処理される必要があります。その DLL は、ビルド ステップとして Web ロールの /bin ディレクトリにコピーされます。

更新: WebActivator が古くなっているという Thomas のコメントのおかげで、この問題を修正することができました。この問題を抱えている他の人が修正を確認できるように、彼の受け入れられた回答への返信コメントを複製しています。

このエラーが発生し始める前に、NHUnspell が正常に動作していました。問題が発生したのは、NuGet を使用して AttributeRouting をインストールしたことです。AttributeRouting は、古いバージョンの WebActivator (1.0.0.0) にドラッグします。残念ながら、更新操作を実行しても、NuGet は更新を提案しません。この Web ページの指示に従って、パッケージ マネージャー コンソールを介して手動で更新を行う必要があります。

http://www.nuget.org/packages/WebActivator

修正を受ける前の元の投稿の残りの部分は次のとおりです。

NuGet パッケージ構成、packages.config、web.config、参照リスト、生のプロジェクト ファイルなどを含む、Hunspellx64.dll への直接参照/リンクについてプロジェクトを精査しました。その DLL への直接参照が見つかりません。 . プロジェクトがそのアンマネージ DLL を直接ロードしようとするのを止めるには、他にどこを見ることができますか、または他に何を試みることができますか? ASP.NET エラー ダンプは次のとおりです。

[BadImageFormatException: Could not load file or assembly 'Hunspellx64.dll' or one of its dependencies. The module was expected to contain an assembly manifest.]
   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
   System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +34
   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152
   System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) +102
   System.Reflection.Assembly.LoadFrom(String assemblyFile) +34
   WebActivator.PreApplicationStartCode.Start() in D:\Code\Bitbucket\WebActivator\WebActivator\PreApplicationStartCode.cs:11

[InvalidOperationException: The pre-application start initialization method Start on type WebActivator.PreApplicationStartCode threw an exception with the following error message: Could not load file or assembly 'Hunspellx64.dll' or one of its dependencies. The module was expected to contain an assembly manifest..]
   System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1 methods, Func`1 setHostingEnvironmentCultures) +550
   System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +132
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath) +90
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +135
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +516

[HttpException (0x80004005): The pre-application start initialization method Start on type WebActivator.PreApplicationStartCode threw an exception with the following error message: Could not load file or assembly 'Hunspellx64.dll' or one of its dependencies. The module was expected to contain an assembly manifest..]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9874568
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254
4

1 に答える 1