// Gets the required assembly references of @assembly that needs resolution.
        // By required, we mean assemblies that is not provided by runtime (.net, mono, etc) or the JointCode.AddIns.dll itself.
        // By default it refers to the GAC assemblies.
        public bool TryGetRequiredAssemblyReferences(ResolutionResult resolutionResult, AssemblyResolution assembly, out List <AssemblyResolutionSet> result)
        {
            var assemblyKeys = assembly.GetRequiredAssemblyReferences();

            if (assemblyKeys == null)  // get all referenced assemblies that is required.
            {
                result = null;
                return(true);
            }

            result = new List <AssemblyResolutionSet>(assemblyKeys.Count);
            for (int i = 0; i < assemblyKeys.Count; i++)
            {
                AssemblyResolutionSet assemblySet;
                if (_key2AssemblySets.TryGetValue(assemblyKeys[i], out assemblySet))
                {
                    result.Add(assemblySet);
                }
                else
                {
                    resolutionResult.AddError("!!!!!!!!!!!");
                    return(false);
                }
            }

            return(true);
        }
Beispiel #2
0
        // get assembly references of @assembly that requires resolution at the runtime, which is not provided runtime or application itself.
        public bool TryGetRequiredAssemblyReferences(IMessageDialog dialog, AssemblyResolution assembly, out List <AssemblyResolutionSet> result)
        {
            var assemblyKeys = assembly.GetRequiredAssemblyReferences();

            if (assemblyKeys == null)  // all referenced assemblies are provided by runtime or application itself.
            {
                result = null;
                return(true);
            }

            result = new List <AssemblyResolutionSet>(assemblyKeys.Count);
            for (int i = 0; i < assemblyKeys.Count; i++)
            {
                AssemblyResolutionSet assemblySet;
                if (_key2AssemblySets.TryGetValue(assemblyKeys[i], out assemblySet))
                {
                    result.Add(assemblySet);
                }
                else
                {
                    dialog.AddError("");
                    return(false);
                }
            }

            return(true);
        }