2011-07-11 14 views
1

私はこの問題とこの問題の潜在的な解決策をここと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データバインディングを通じて宣言的に)私はまだ問題を抱えていました。思考?

答えて

2

答えは、プラットフォームターゲットをx86に変更したことです。何らかの理由でAny CPUに設定されています。 grrrr ....

+0

これは解決策でした! –