1

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

堆栈跟踪:

[FileLoadException:无法加载文件或程序集“AxInterop.WMPLib”或其依赖项之一。参数不正确。(来自 HRESULT 的异常:0x80070057 (E_INVALIDARG))]

[FileLoadException:无法加载文件或程序集“AxInterop.WMPLib,版本=1.0.0.0,文化=中性,PublicKeyToken=null”或其依赖项之一。参数不正确。(HRESULT 异常:0x80070057 (E_INVALIDARG))]
System.Reflection.RuntimeAssembly._nLoad(AssemblyName 文件名,字符串 codeBase,证据 assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔 suppressSecurityChecks)+0
系统。 Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean for Introspection,
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark & stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean for Introspection, Boolean suppressSecurityChecks) +152
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMarkString & , IntPtr pPrivHostBinder, Boolean for Introspection) +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,版本=1.0.0.0,文化=中性,PublicKeyToken=null”或其依赖项之一。参数不正确。(来自 HRESULT 的异常: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, 异常appDomainCreationException) +516

[HttpException(0x80004005):无法加载文件或程序集“AxInterop.WMPLib,版本=1.0.0.0,文化=中性,PublicKeyToken=null”或其依赖项之一。参数不正确。(HRESULT 异常:0x80070057 (E_INVALIDARG))]
System.Web.HttpRuntime.FirstRequestInit(HttpContext 上下文)+9850940 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext 上下文)+101 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)+456

4

2 回答 2

4

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

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

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

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

于 2012-12-18T09:07:33.923 回答
0

我在 Windows 10 Pro 中遇到了同样的错误。问题是我使用自定义构建事件在另一个路径中编译,并且我缺少将库添加到项目编译文件夹中。

因此,请务必将AxInterop.WMPLib.dllInterop.WMPLib.dll添加到项目文件夹中。

于 2020-07-08T10:29:33.107 回答