当我从 Visual Studio 2012 运行它时,我的应用程序运行良好。问题是当我尝试在 PC 上安装它时。在安装结束时,我不断收到下图中的错误。我检查并发现 KinectAudio10.dll 存在于该位置。该应用程序运行良好,仅在我需要播放声音的部分崩溃。我正在用 SoundPlayer.Play(); 任何想法可能是什么问题?我正在使用 InstallShield 制作安装包。谢谢你。

当我从 Visual Studio 2012 运行它时,我的应用程序运行良好。问题是当我尝试在 PC 上安装它时。在安装结束时,我不断收到下图中的错误。我检查并发现 KinectAudio10.dll 存在于该位置。该应用程序运行良好,仅在我需要播放声音的部分崩溃。我正在用 SoundPlayer.Play(); 任何想法可能是什么问题?我正在使用 InstallShield 制作安装包。谢谢你。

将所有项目 Kinect.dll 属性Copy Local中的所有引用更改为false。这个对我有用。
由于您现在应该很明显的原因,自我注册不是最佳实践。依赖进程外代码引入了安装失败的可能性,并创建了 Windows Installer 不知道的注册表值,因此无法完全回滚或卸载。
出于测试目的,打开提升的命令提示符和 CD 到您的 SYSWOW64 目录。使用命令 RegSvr32.exe FILENAME.DLL 手动注册 DLL,然后再次测试您的代码。
如果这解决了问题,请将您的测试环境重置为干净状态并重新构建安装程序,而不使用自我注册。
为此,在 InstallShield 中找到具有该文件的组件并查找 Self Reg 复选框。禁用它。然后将 COM Extract at Build 选项设置为 true 并重新构建。例如构建日志,以获取提取和没有失败的证据。
在干净的 VM 上安装并测试您的应用程序。
我有同样无聊的问题。它对我有用,只需将 KinectAudio10.dll 从 SysWOW64 移动到另一个文件夹。
我猜 InstallShield 在找不到 ddl 时什么也不做。我没有在我的应用程序中使用任何 kinect 的声音,所以我没有任何副作用。