/// <summary> /// When the user builds through the command line, we only load the necessary, non-UI functionality: /// 1. Xml Editor package for XLinq tree /// 2. Model Manager /// 3. Connection Manager and listener /// 4. Error List, and notifications that perform our specialized validation on build /// </summary> private void InitializeForCommandLineBuilds() { PackageManager.Package = this; _dispatcher = Dispatcher.CurrentDispatcher; // make sure that we can load the XML Editor package var vsShell = (IVsShell)GetService(typeof(SVsShell)); if (vsShell != null) { var editorPackageGuid = CommonPackageConstants.xmlEditorPackageGuid; IVsPackage editorPackage; NativeMethods.ThrowOnFailure(vsShell.LoadPackage(ref editorPackageGuid, out editorPackage)); } ErrorListHelper.RegisterForNotifications(); }
protected override void Initialize() { base.Initialize(); // for command line builds we only have a minimal set of functionality to only support building if (IsBuildingFromCommandLine) { InitializeForCommandLineBuilds(); } else { // HACK HACK -- find a better place to do this. EFModelErrorTaskNavigator.DslDesignerOnNavigate = DSLDesignerNavigationHelper.NavigateTo; // -- HostContext.Instance.LogUpdateModelWizardErrorAction = ErrorListHelper.LogUpdateModelWizardError; PackageManager.Package = this; _dispatcher = Dispatcher.CurrentDispatcher; // make sure that we can load the XML Editor package var vsShell = (IVsShell)GetService(typeof(SVsShell)); if (vsShell != null) { var editorPackageGuid = CommonPackageConstants.xmlEditorPackageGuid; IVsPackage editorPackage; NativeMethods.ThrowOnFailure(vsShell.LoadPackage(ref editorPackageGuid, out editorPackage)); } _documentFrameMgr = new EntityDesignDocumentFrameMgr(PackageManager.Package); _modelChangeEventListener = new ModelChangeEventListener(); _guidsCache = new AggregateProjectTypeGuidCache(); _modelGenErrorCache = new ModelGenErrorCache(); _connectionManager = new ConnectionManager(); AddToolWindow(typeof(MappingDetailsWindow)); // Register for VS Events ErrorListHelper.RegisterForNotifications(); // Add the handler to show our Explorer. This is for the top-level 'Entity Data Model Browser' command that is added to the // 'View' main menu. This is different from the 'Model Browser' command on the designer context menu. _viewExplorerCmd = AddCommand( ShowExplorerWindow, ShowExplorerWindow_BeforeQueryStatus, MicrosoftDataEntityDesignCommands.ViewExplorer); // Add the handler to show our MappingDesigner. This is for the top-level 'Entity Data Model Mapping Details' command that is added // to the 'View' main menu. This is different from the 'Mapping Details' command on the designer context menu. _viewMappingCmd = AddCommand( ShowMappingDetailsWindow, ShowMappingDetailsWindow_BeforeQueryStatus, MicrosoftDataEntityDesignCommands.ViewMapping); // Subscribe to Project's target framework retargeting var projectRetargetingService = GetService(typeof(SVsTrackProjectRetargeting)) as IVsTrackProjectRetargeting; Debug.Assert(null != projectRetargetingService, "TrackProjectRetargeting service is null"); _trackProjectRetargetingEventsCookie = 0; if (projectRetargetingService != null) { projectRetargetingService.AdviseTrackProjectRetargetingEvents(this, out _trackProjectRetargetingEventsCookie); } // There is no SQL CE support dev12 onward, so removing the references #if (VS11) // Subscribe to the SQL CE and SqlDatabaseFile upgrade services var sqlCeUpgradeService = GetGlobalService(typeof(IVsSqlCeUpgradeService)) as IVsSqlCeUpgradeService; #endif var sqlDatabaseFileUpgradeService = GetGlobalService(typeof(IVsSqlDatabaseFileUpgradeService)) as IVsSqlDatabaseFileUpgradeService; #if (VS12ORNEWER) if (sqlDatabaseFileUpgradeService == null) #else if (sqlCeUpgradeService == null || sqlDatabaseFileUpgradeService == null) #endif { // attempt to start IVsSqlCeUpgradeService and IVsSqlDatabaseFileUpgradeService BootstrapVSDesigner(); #if (VS11) if (sqlCeUpgradeService == null) { sqlCeUpgradeService = GetGlobalService(typeof(IVsSqlCeUpgradeService)) as IVsSqlCeUpgradeService; } #endif if (sqlDatabaseFileUpgradeService == null) { sqlDatabaseFileUpgradeService = GetGlobalService(typeof(IVsSqlDatabaseFileUpgradeService)) as IVsSqlDatabaseFileUpgradeService; } } #if (VS11) Debug.Assert(null != sqlCeUpgradeService, "sqlCeUpgradeService service is null"); if (sqlCeUpgradeService != null) { sqlCeUpgradeService.OnUpgradeProject += EdmUtils.SqlCeUpgradeService_OnUpgradeProject; } #endif Debug.Assert(null != sqlDatabaseFileUpgradeService, "sqlDatabaseFileUpgradeService service is null"); if (sqlDatabaseFileUpgradeService != null) { sqlDatabaseFileUpgradeService.OnUpgradeProject += EdmUtils.SqlDatabaseFileUpgradeService_OnUpgradeProject; } } }