/// <summary>
        /// Load the ResourceStaticAnalysis Engine Config Macros from the macro definintion file.
        /// </summary>
        /// <remarks>Look first for the macro definition file located on disk in the same location as the executing assembly.
        /// If that isn't found or isn't valid, load the macro definition file embedded as a resource in the assembly.</remarks>
        /// <returns>ResourceStaticAnalysisConfigMacros object loaded from the macro definition file.</returns>
        private ResourceStaticAnalysisConfigMacros LoadConfigMacros()
        {
            Assembly assembly   = Assembly.GetExecutingAssembly();
            String   pathToFile = Path.Combine(Path.GetDirectoryName(new Uri(assembly.CodeBase).LocalPath), macroDefinitionFile);

            ResourceStaticAnalysisConfigMacros macros = null;

            if (!File.Exists(pathToFile) || (macros = ResourceStaticAnalysisConfigMacros.Load(pathToFile)) == null)
            {
                try
                {
                    macros = ResourceStaticAnalysisConfigMacros.Load(assembly.GetManifestResourceStream(String.Format("{0}.{1}", this.GetType().Namespace, macroDefinitionFile)));
                }
                catch
                {
                    //Failed to load the macro file - ignore and move on.
                }
            }

            return(macros ?? new ResourceStaticAnalysisConfigMacros());
        }