我已经在这里和MSDN论坛上发现了这个问题和潜在的解决方案,但我的问题有点不同。当我在Runtime类上调用ctor时,我得到了这个异常:
System.IO.FileNotFoundException:无法加载文件或程序集'INuiInstanceHelper,Version = 1.0.0.10,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。
我在 中在一个简单的场景中构建运行时(例如,WPF中的Loaded事件)时会出现此错误。请参阅下面的简单场景代码。
在我的实际场景中,当用户从打开的文件对话框打开文件时,会调用我的Runtime的ctor。这是从ViewModel中的MenuItem命令开始的,该命令使用包装打开文件对话框的“服务”。然后,ViewModel在指定文件路径后初始化运行时:
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项目时,我 not 得到此错误:
// 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的解决方案。我没有看到这些解决方案将如何帮助,因为我可以以不同的方式构造运行时没有错误。我认为我的问题必须与用户启动(例如从Button Click)有关,但当我将Runtime构造函数移动到在app启动附近执行的方法时(例如在我的ViewModel的ctor中实例化)通过数据绑定声明我仍然有问题。想法?
答案 0 :(得分:2)
答案是将平台目标更改为x86。由于某种原因,它被设置为任何CPU。 GRRRR ....