私はこの問題とこの問題の潜在的な解決策をこことMSDNフォーラムで見つけましたが、私の問題は少し異なります。ランタイムクラスでctorを呼び出すと、次の例外が発生します。Kinect SDKのINuiInstanceHelperの読み込みでの不一致の問題
System.IO.FileNotFoundException:ファイルまたはアセンブリ 'INuiInstanceHelper、Version = 1.0.0.10、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'または1つをロードできませんでした。その依存関係の
私はではない単純なシナリオ(たとえば、WPFのLoadedイベント、以下の簡単なシナリオコードを参照)でランタイムを構築するときにこのエラーが発生します。
私の実際のシナリオでは、ユーザーが開いているファイルダイアログからファイルを開くと、自分のランタイムのctorが呼び出されます。これは、開いているファイルダイアログをラップする "サービス"を使用するViewModelのMenuItemコマンドから始まります。 ViewModelには、ファイルパスの後にランタイムを初期化し、指定されています。しかし、私はを起動したときに
bool initialized;
public void Initialize()
{
if (initialized)
{
return;
}
try
{
this.runtime = new Runtime();
}
catch (FileNotFoundException ex)
{
Trace.WriteLine(ex.ToString());
}
// ...
initialized = true;
}
:
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だけランタイムを構築新しい WPFプロジェクトを最初から実行してランタイムを構築すると、私はではない
// does not throw exception
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Runtime r = new Runtime();
r.Initialize(RuntimeOptions.UseSkeletalTracking);
r.Uninitialize();
}
この例外を検出すると、DirectXのアップデート、Windowsの再起動、Windowsのアップデート、またはINuiInstanceHelperのGACへの再インストールが必要なソリューションが出てきました。私は別の方法でエラーなしでランタイムを構築できるので、これらのソリューションがどのように役立つのか分かりません。私は自分の問題は、ユーザーが開始した(例えばボタンクリックから)何かを持っている必要があると思ったが、ランタイムコンストラクタをアプリケーションの起動時に実行されるメソッドに移動したとき(インスタンス化されたViewModelのctorデータバインディングを通じて宣言的に)私はまだ問題を抱えていました。思考?
これは解決策でした! –