diff --git a/CPPCheckPlugin/CPPCheckPluginPackage.cs b/CPPCheckPlugin/CPPCheckPluginPackage.cs index 77d14d3..8b57902 100644 --- a/CPPCheckPlugin/CPPCheckPluginPackage.cs +++ b/CPPCheckPlugin/CPPCheckPluginPackage.cs @@ -219,7 +219,16 @@ private void documentSaved(Document document) { return; } - var currentConfig = document.ProjectItem.ConfigurationManager.ActiveConfiguration; + + Configuration currentConfig = null; + try { currentConfig = document.ProjectItem.ConfigurationManager.ActiveConfiguration; } + catch (Exception) { currentConfig = null; } + if (currentConfig == null) + { + MessageBox.Show("Cannot perform check - no valid configuration selected", "Cppcheck error"); + return; + } + SourceFile sourceForAnalysis = createSourceFile(document.FullName, currentConfig, project); if (sourceForAnalysis == null) return; @@ -266,7 +275,13 @@ private void checkCurrentProject() System.Windows.MessageBox.Show("Only C++ projects can be checked."); return; } - currentConfig = ((Project)o).ConfigurationManager.ActiveConfiguration; + try { currentConfig = ((Project)o).ConfigurationManager.ActiveConfiguration; } + catch (Exception) { currentConfig = null; } + if (currentConfig == null) + { + MessageBox.Show("Cannot perform check - no valid configuration selected", "Cppcheck error"); + return; + } dynamic projectFiles = project.Files; foreach (dynamic file in projectFiles) {