// Open internal DXProject(string path) : this() { this.FileName = path; this.CanOpen = false; rendererInfos = new Dictionary <Guid, RendererSurface>(); binderInfos = new Dictionary <Guid, PBinder>(); // 패키지 파일 불러옴 if (!LoadPackages()) { MessageBox.Show("파일을 불러올 수 없습니다.", "DeXign", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } // 매니페스트 불러옴 if (!LoadManifest()) { MessageBox.Show("프로젝트 구성파일을 찾을 수 없습니다.", "DeXign", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } // Screen, Renderer, Component 구성 요소 불러옴 if (!LoadScreens() || !LoadScreenRenderers() || !LoadComponents()) { if (this.Manifest != null) { string[] manifestReferences = this.Manifest.ReferencedModules.Items.ToArray(); string[] loadedReferences = SDKManager.GetReferencedModules().ToArray(); string[] exceptedModules = manifestReferences.Except(loadedReferences).ToArray(); if (exceptedModules.Length > 0) { var sb = new StringBuilder(); sb.AppendLine("이 프로젝트를 열기위한 모듈을 찾을 수 없습니다."); sb.AppendLine(); foreach (string module in exceptedModules) { sb.AppendLine(module.Split(',')[0]); } MessageBox.Show(sb.ToString(), "DeXign", MessageBoxButton.OK, MessageBoxImage.Exclamation); } } else { MessageBox.Show("알 수 없는 오류", "DeXign", MessageBoxButton.OK, MessageBoxImage.Exclamation); } return; } this.CanOpen = true; }