public override MetadataReference ResolveAssemblyName(AssemblyNameReference assemblyName)
        {
            string path = ResolveAssemblyName(assemblyName.Name);
            if (path != null)
            {
                return new AssemblyFileReference(path, assemblyName.Alias, assemblyName.EmbedInteropTypes);
            }

            return base.ResolveAssemblyName(assemblyName);
        }
        /// <summary>
        /// Determines whether the specified <see cref="System.Object"/> is equal to this instance.
        /// </summary>
        /// <param name="obj">The assembly to compare with this instance.</param>
        /// <returns>
        ///   <c>true</c> if the specified <see cref="System.Object"/> is equal to this instance; otherwise, <c>false</c>.
        /// </returns>
        public bool Equals(AssemblyNameReference obj)
        {
            if (this == obj)
            {
                return true;
            }

            if (obj == null)
            {
                return false;
            }

            return
                this.CommonEquals(obj) &&
                StringComparer.OrdinalIgnoreCase.Equals(this.Name, obj.Name);
        }