private void buildSolution(string slnFile)
        {
            if (_cancel)
            {
                return;
            }
            showInfo("Build solution starts for {0}", slnFile);
            LimnorSolution.ResetSolution();
            BuildSolutionResult sln = _generic.AddSolution(slnFile);

            treeView1.Nodes.Add(sln.Node);
            SolutionNode slnNode = _main.LoadSolution(slnFile, false);

            if (slnNode != null)
            {
                ProjectNode[] projects = slnNode.GetProjectBuilderOrder();
                if (projects.Length > 0)
                {
                    string           cfg             = "Release";
                    StringCollection _compilerErrors = new StringCollection();
                    for (int i = 0; i < projects.Length; i++)
                    {
                        if (slnNode.IsProjectBuildIncluded(projects[i]))
                        {
                            buildProject(projects[i], cfg, sln);
                        }
                        if (_cancel)
                        {
                            break;
                        }
                    }
                    if (_compilerErrors.Count > 0)
                    {
                        sln.AppendErrors(_compilerErrors);
                    }
                }
            }
            else
            {
                sln.SetError("Solution cannot be loaded");
            }
            sln.End();
            Application.DoEvents();
        }