在Kinect SDK中加载INuiInstanceHelper不一致的问题
本文关键字:不一致 问题 INuiInstanceHelper 加载 Kinect SDK | 更新日期: 2023-09-27 18:01:42
我在这里和MSDN论坛上都发现了这个问题和潜在的解决方案,但我的问题有点不同。当我调用Runtime类上的函数时,我得到了这个异常:
先。FileNotFoundException:无法加载文件或程序集'INuiInstanceHelper, Version=1.0.0.10, Culture=neutral, PublicKeyToken=31bf3856ad364e35'或其依赖项之一。
我做不是得到这个错误时,构建运行时在一个简单的场景(例如在WPF加载的事件。
在我的实际场景中,当用户从打开文件对话框中打开文件时,我的运行时的actor被调用。这是从ViewModel中的MenuItem命令开始的,它使用一个"服务"来包装打开文件对话框。然后ViewModel在指定文件路径后初始化Runtime:
void ExecuteOpenCommand()
{
var path = this.openFileService.OpenFile();
if (!string.IsNullOrEmpty(path))
{
var model = ViewModelLoader.ReadMainModel(path);
var viewModel = ViewModelLoader.LoadViewModel(model);
this.MainViewModel = viewModel;
this.MainViewModel.NuiService = this.nuiService;
this.nuiService.Initialize();
}
}
nuiService只构造运行时,如果它以前从未被初始化:
bool initialized;
public void Initialize()
{
if (initialized)
{
return;
}
try
{
this.runtime = new Runtime();
}
catch (FileNotFoundException ex)
{
Trace.WriteLine(ex.ToString());
}
// ...
initialized = true;
}
然而,当我从头开始一个新的 WPF项目并构建运行时,我做不得到这个错误:
// does not throw exception
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Runtime r = new Runtime();
r.Initialize(RuntimeOptions.UseSkeletalTracking);
r.Uninitialize();
}
当谷歌搜索这个例外时,我遇到了需要更新DirectX,重启,更新Windows或重新安装INuiInstanceHelper到GAC的解决方案。我看不出这些解决方案会有什么帮助,因为我可以用另一种方式构建运行时而不会出错。我认为我的问题必须与它是用户发起(例如,从一个按钮点击),但当我移动到运行时构造函数的方法得到执行附近的应用程序启动(例如,在我的ViewModel这是通过数据绑定实例化声明),我仍然有问题。想法吗?
答案是将平台目标更改为x86。出于某种原因,它被设置为任意CPU。grrrr…