无法加载文件或程序集“AxInterop.WMPLib”或其依赖项之一。 参数不正确。

我有一个库AXInterop.WMPLib,它让我发疯。 这是我收到的错误。 我没有使用任何其他依赖项。

堆栈跟踪:

[FileLoadException:无法加载文件或程序集’AxInterop.WMPLib’或其依赖项之一。 参数不正确。 (HRESULTexception:0x80070057(E_INVALIDARG))]

[FileLoadException:无法加载文件或程序集’AxInterop.WMPLib,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null’或其依赖项之一。 参数不正确。 (HRESULTexception:0x80070057(E_INVALIDARG))]
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.InternalLoad(String assemblyString,Evidence assemblySecurity,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean forIntrospection)+77
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,Evidence assemblySecurity,StackCrawlMark&stackMark,Boolean forIntrospection)+16 System.Reflection.Assembly.Load(String assemblyString)+28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)+38

[ConfigurationErrorsException:无法加载文件或程序集’AxInterop.WMPLib,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null’或其依赖项之一。 参数不正确。 (HRESULTexception:0x80070057(E_INVALIDARG))]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)+752
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()+ 218 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)+130
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)+170
System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies()+91 System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath)+258
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):无法加载文件或程序集“AxInterop.WMPLib,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一。 参数不正确。 (HRESULTexception:0x80070057(E_INVALIDARG))]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9850940 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+101 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)+456

我假设您在Windows客户端(XP,Vista或7)上开发此应用程序,然后将其部署到Windows Server(2008,2008 R2等)

Windows Media Player是Windows Server上的可选组件(与Windows 7之类的Windows客户端不同),因此您必须启用它(作为桌面体验角色服务的一部分),

http://technet.microsoft.com/en-us/library/cc772567.aspx

之后,AxInterop.WMPLib应该能够找到它的依赖项(Windows Media Player中的本机库)。