Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows N版本上使用WMPLib_C#_Windows_Dll_Wmp_Wmplib - Fatal编程技术网

C# 在Windows N版本上使用WMPLib

C# 在Windows N版本上使用WMPLib,c#,windows,dll,wmp,wmplib,C#,Windows,Dll,Wmp,Wmplib,我有一个问题,我不知道如何解决它:我在我的C#应用程序(位于C:\Windows\System32\WMP.dll)中使用了WMPLib。我引用了它,并将其添加到主窗体代码文件的头中: using WMPLib; 但是,如果我尝试在Windows N版本上运行我的应用程序(我认为KN版本在这里也算),它将停止工作,Windows将显示以下消息:“应用程序名称已停止工作。您可以检查解决方案…”。所以现在,我试图找到一种解决方法,例如,当用户运行WindowsN版本时,不在运行时导入DLL。 我担

我有一个问题,我不知道如何解决它:我在我的C#应用程序(位于C:\Windows\System32\WMP.dll)中使用了WMPLib。我引用了它,并将其添加到主窗体代码文件的头中:

using WMPLib;
但是,如果我尝试在Windows N版本上运行我的应用程序(我认为KN版本在这里也算),它将停止工作,Windows将显示以下消息:“应用程序名称已停止工作。您可以检查解决方案…”。所以现在,我试图找到一种解决方法,例如,当用户运行WindowsN版本时,不在运行时导入DLL。 我担心我没有办法将我的应用程序重新分发给Windows N用户

谢谢你的建议,
Vali

默认情况下,N版本未随Windows Media Player一起安装,这解释了DLL缺失的原因。不过,Windows Media Player可以在安装后安装

这给您留下了两个选择:

  • 在运行时动态加载DLL
  • 检查并要求先安装Windows Media Player(即在安装过程中)

你可能真的想两者兼而有之。如果应用程序需要此程序集来完成其工作,则在应用程序启动时,您可能需要检查DLL是否可用。如果不是,则显示有意义的错误消息比完全崩溃更可取。

默认情况下,Windows Media Player未安装N版本,这解释了DLL丢失的原因。不过,Windows Media Player可以在安装后安装

这给您留下了两个选择:

  • 在运行时动态加载DLL
  • 检查并要求先安装Windows Media Player(即在安装过程中)

你可能真的想两者兼而有之。如果应用程序需要此程序集来完成其工作,则在应用程序启动时,您可能需要检查DLL是否可用。如果不是,显示一条有意义的错误消息比彻底崩溃要好。

是的,我认为你是对的:媒体功能不是我应用程序中的必备功能,但拥有它们对用户来说仍然很好。据我所知,WindowsN版本的使用情况并不像预期的那样,只有在欧盟、瑞士和克罗地亚才有。在使用Windows Media Player之前,我尝试了另一种方法:NAudio,但它仍然使用系统的媒体功能,因此也没有用。现在,我想我可以提供我的应用程序的两个版本,或者在安装应用程序时提示用户安装媒体播放器。无论如何,谢谢你的信息,我会考虑的!谢谢@瓦伦丁:不客气!如果没有安装媒体库,您可以禁用使用媒体库的特定功能。这样,用户就可以一直使用该应用程序的大部分内容,然后如果需要添加的功能,就可以安装Windows Media。我不知道这是否与你的申请相关,但这是一个值得考虑的问题。是的,我认为你是对的:媒体特征在我的应用程序中不是必不可少的,但它仍然对用户有好处。据我所知,WindowsN版本的使用情况并不像预期的那样,只有在欧盟、瑞士和克罗地亚才有。在使用Windows Media Player之前,我尝试了另一种方法:NAudio,但它仍然使用系统的媒体功能,因此也没有用。现在,我想我可以提供我的应用程序的两个版本,或者在安装应用程序时提示用户安装媒体播放器。无论如何,谢谢你的信息,我会考虑的!谢谢@瓦伦丁:不客气!如果没有安装媒体库,您可以禁用使用媒体库的特定功能。这样,用户就可以一直使用该应用程序的大部分内容,然后如果需要添加的功能,就可以安装Windows Media。我不知道这是否与你的申请相关,但这是一个值得考虑的问题。