Pregunta Se esperaba que el módulo incluyera un manifiesto de ensamblaje


Tengo un proyecto en c # que usa la biblioteca c ++ y algunos dlls. Cuando lo ejecuto funciona bien.

La biblioteca es Awesomium, contiene tanto la biblioteca c ++ como los envoltorios c #

Cuando creo una referencia a este proyecto desde mi proyecto ASP.NET MVC 4, aparece el siguiente error:

Detalles de la excepción: System.BadImageFormatException: no se pudo cargar el archivo o ensamblado 'file: /// D: \ Projects \ Development \ ProGamers \ GamingSite \ bin \ avcodec-52.dll' o una de sus dependencias. Se esperaba que el módulo incluyera un manifiesto de ensamblaje.

Cosas que he intentado:

  1. Hacer frente a los dlls, pero todavía no funciona (el archivo existe).

  2. Registrarlo en el GAC pero tengo el mismo error allí.

  3. Asegúrese de usar .NET Framework 4.0 (y no el perfil del cliente)

  4. 2 archivos con el mismo nombre dll / exe causando conflicto - No lo tengo.

  5. Cambiar la plataforma de la solución a AnyCPU / plataformas mixtas.

Stack Trace:

[BadImageFormatException: Could not load file or assembly 'file:///D:\Projects\Development\ProGamers\GamingSite\bin\avcodec-52.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.ActivationManager.Run() +190

[InvalidOperationException: The pre-application start initialization method Run on type WebActivator.ActivationManager threw an exception with the following error message: Could not load file or assembly 'file:///D:\Projects\Development\ProGamers\GamingSite\bin\avcodec-52.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 Run on type WebActivator.ActivationManager threw an exception with the following error message: Could not load file or assembly 'file:///D:\Projects\Development\ProGamers\GamingSite\bin\avcodec-52.dll' or one of its dependencies. The module was expected to contain an assembly manifest..]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9850940
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +456

32
2017-09-01 09:43


origen


Respuestas:


Descubrí que estoy usando una InstallUtil diferente de mi Target .NET Framework. Estoy construyendo un .NET Framework 4.5, mientras tanto el error ocurrió si estoy usando el lanzamiento de .NET Framework 2.0. ¡Al usar el InstallUtil correcto para mi objetivo .NET Framework, resolví este problema!


35
2018-01-22 10:46



BadImageFormatException, en mi experiencia, casi siempre tiene que ver con ensamblajes compilados x86 versus x64. Parece que su ensamblaje en C ++ está compilado para x86 y se está ejecutando en un proceso x64. ¿Es eso correcto?

En lugar de usar AnyCPU/Mixed como la plataforma. Intenta configurarlo manualmente x86 y ver si se ejecutará después de eso.

Espero que esto ayude.


8
2017-09-01 10:49



Encontré otra razón extraña y pensé que tal vez otro desarrollador confundido como yo. Ejecuté install.bat que creó para instalar mi servicio en Developer Command Prompt de VS2010 pero mi servicio se generó en VS2012. iba a este error y me vuelve loco, pero lo intento Indicador de comando del desarrollador VS2012 herramientas y todo ido para estar bien. No entiendo por qué, pero mi problema fue resuelto. para que pueda probarlo y si alguien sabe por qué, por favor comparta con nosotros. Gracias.


1
2018-03-26 18:14



Compruebe si el manifiesto es un archivo xml válido. Tuve el mismo problema al hacer un comando de copia de DOS al final de la compilación, y resulta que, por alguna razón, no puedo entender que "copiar" era agregar un carácter extraño (->) al final de los archivos de manifiesto. El problema se resolvió agregando el interruptor "/ b" para forzar la copia binaria.


1
2017-08-25 09:41



Primero intente abrir el archivo con un descompilador como ILSpy, su dll podría estar dañado. Tuve este error en un sitio web en línea, cuando descargué el dll e intenté abrirlo, estaba dañado, probablemente se produjo algún error al cargarlo a través de ftp.


1
2017-07-02 00:56