public static void Create(BuildDocumenter documenter,
                                  TestOptions options)
        {
            if (!options.BuildReferences)
            {
                return;
            }

            BuildSettings settings = documenter.Settings;

            ReferenceEngineSettings engineSettings = settings.EngineSettings[
                BuildEngineType.Reference] as ReferenceEngineSettings;

            Debug.Assert(engineSettings != null);

            if (engineSettings == null)
            {
                return;
            }

            sampleDir     = options.SampleDir;
            workingDir    = options.WorkingDir;
            sandAssistDir = options.SandAssistDir;
            tocType       = options.TocType;

            // Decide which namespace layout: Flat or Hierarchical
            ReferencesTocType refTestType = ReferencesTocType.Hierarchical;

            // Decide whether to use namespace root container
            engineSettings.RootNamespaceContainer = true;
            if (refTestType == ReferencesTocType.Hierarchical)
            {
                ReferenceTocLayoutConfiguration tocLayout =
                    engineSettings.TocLayout;
                tocLayout.ContentsAfter = false;
                tocLayout.LayoutType    = ReferenceTocLayoutType.Hierarchical;
            }

            // For testing script sharp...
            TestSharpScript(documenter, options, engineSettings);

            // For testing portable class libraries...
            TestPortable(documenter, options, engineSettings);

            // For testing Silverlight 5 projects...
            TestSilverlight(documenter, options, engineSettings);

            // For testing ASP.NET MVC projects...
            TestOther(documenter, options, engineSettings);

            // For testing VS.NET projects...
            TestSolution(documenter, options, engineSettings);
        }
        public static void Create(BuildDocumenter documenter,
                                  TestOptions options)
        {
            if (!options.BuildReferences)
            {
                return;
            }

            BuildSettings settings = documenter.Settings;

            ReferenceEngineSettings engineSettings = settings.EngineSettings[
                BuildEngineType.Reference] as ReferenceEngineSettings;

            Debug.Assert(engineSettings != null);

            if (engineSettings == null)
            {
                return;
            }

            sampleDir     = options.SampleDir;
            workingDir    = options.WorkingDir;
            sandAssistDir = options.SandAssistDir;
            tocType       = options.TocType;

            // Decide which namespace layout: Flat or Hierarchical
            ReferencesTocType refTestType = ReferencesTocType.Hierarchical;

            // Decide whether to use namespace root container
            engineSettings.RootNamespaceContainer = true;
            if (refTestType == ReferencesTocType.Hierarchical)
            {
                ReferenceTocLayoutConfiguration tocLayout =
                    engineSettings.TocLayout;
                tocLayout.ContentsAfter = false;
                tocLayout.LayoutType    = ReferenceTocLayoutType.Hierarchical;
            }

            // Test most reference topic options, including...
            // 1. Code snippets
            // 2. Version information: Advanced
            // 3. Media/Image contents
            // 4. Reference filters
            TestMain(documenter, options, engineSettings);

            // Test mainly hierarchical table of contents, including...
            // 1. tocexclude/excludetoc tag support
            // 2. Extension methods
            // 3. Version information: Assembly-And-File
            // 4. Linking to conceptual help contents
            // 5. Events
            TestHierarchicalToc(documenter, options, engineSettings);

            // Test assembly redirection and auto-dependency resolution, including...
            // 1. .NET 4 features (including Action<...> and Func<...>)
            // 2. Embedding contents. You can include linked third-party library
            //    documentation, which will not show in TOC but accessible from links
            // 3. WPF features like Xmlns-For-Xaml and Xaml usage.
            // 4. Version information: Assembly
            //TestRedirection(documenter, options, engineSettings);

            // Test for WPF 4.0 and Silverlight 4.0 assemblies, including...
            // 1. WPF features like Xmlns-For-Xaml and Xaml usage.
            // 2. Version information: None
            //TestSilverlightWPF(documenter, options, engineSettings);

            // Test other features...
            // 1. Testing C++/CLR library
            // 2. Version information: Assembly-And-File
            //    Has no file version. Assembly version is auto-incremental.
            // 3. Support for Visual C++ Project content source.
            //TestOthers(documenter, options, engineSettings);
        }