public void addReference(string referenceAssembly)
        {
            try
            {
                if (loadedReferences.contains(referenceAssembly).isFalse())
                {
                    if (referenceAssembly.fileExists())
                    {
                        myProjectContent.add_Reference(pcRegistry, referenceAssembly, statusMessage);
                    }
                    else
                    {
                        var assembly = referenceAssembly.assembly();
                        if (assembly.notNull() && assembly.Location.fileExists())
                        {
                            myProjectContent.add_Reference(pcRegistry, assembly.Location, statusMessage);
                        }
                        else
                        {
                            "[addReference] could not find assembly for: {0}".error(referenceAssembly);
                        }
                    }

                    //if (gacAssemblies.contains(assemblyWithoutExtension))
                    //    this.myProjectContent.add_Reference(this.pcRegistry, assemblyWithoutExtension, statusMessage);
                    //else

                    loadedReferences.Add(referenceAssembly);
                }
            }
            catch (Exception ex)
            {
                ex.log("in O2CodeCompletion addReference:{0}".format(referenceAssembly));
            }
        }