Ho un progetto in C# che utilizza la libreria C++ e alcune DLL. Quando lo eseguo funziona alla grande.Il modulo doveva contenere un manifest assembly
La biblioteca è Awesomium, contiene sia libreria C++ e C# wrapper
Quando creo riferimento a questo progetto dal mio progetto ASP.NET MVC 4 ricevo il seguente errore:
Dettagli eccezione: System.BadImageFormatException: impossibile caricare file o assembly 'file: /// D: \ Projects \ Development \ ProGamers \ GamingSite \ bin \ avcodec-52.dll' o una delle sue dipendenze. Il modulo avrebbe dovuto contenere un manifest assembly.
cose che ho provato:
Affrontare le DLL, ma ancora non funziona (Il file esiste).
Registrarlo nel GAC ma ho lo stesso errore lì.
Assicurarsi di utilizzare .NET Framework 4.0 (e non il profilo del cliente)
2 files with the same dll/exe name causing conflict - Non ho essa.
Change the platform of the solution a AnyCPU/Piattaforme miste.
dello stack:
[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
è possibile ottenere un registro dall'associazione con il [Visualizzatore registro binding di assembly] (http://msdn.microsoft.com/en-us/library/e74a18c4.aspx)? Assicurati di impostare prima le impostazioni su Log all binds. – rene
Assembly.LoadFrom() non può funzionare su una DLL come avcodec-52.dll, non è un assembly .NET. Perché il tuo codice tenta di caricarlo in questo modo non è completamente chiaro se non si pubblica uno snippet. –
Hans I non ha usato Assembly manualmente, e ha funzionato benissimo in un'applicazione console. Rende solo problemi solo quando faccio riferimento alla mia applicazione ASP.NET. E l'unico uso che sto facendo è fare riferimento alle dll di Awesomium. http://awesomium.com –