Skip to content

Commit cf3e7c2

Browse files
authored
[generator] Don't process duplicate reference assemblies (#611)
When a binding project references another binding project, the list of references assemblies can contain duplicates, e.g. `mscorlib`: [0]: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\MonoAndroid\\v1.0\\mscorlib.dll" [1]: "C:\\code\\XamarinComponents\\Android\\BetterPickers\\source\\AndroidSwitchBackport\\bin\\Debug\\AndroidSwitchBackport.dll" [2]: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\MonoAndroid\\v1.0\\Java.Interop.dll" [3]: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\MonoAndroid\\v9.0\\Mono.Android.dll" [4]: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\MonoAndroid\\v1.0\\mscorlib.dll" [5]: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\MonoAndroid\\v1.0\\System.Core.dll" [6]: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\MonoAndroid\\v1.0\\System.dll" [7]: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\MonoAndroid\\v1.0\\Facades\\System.Runtime.dll" [8]: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview\\Common7\\IDE\\ReferenceAssemblies\\Microsoft\\Framework\\MonoAndroid\\v1.0\\System.Xml.dll" There is no reason to scan any duplicate assemblies a second time, so add an `Enumerable.Distinct()` to prevent duplicates.
1 parent f5fa462 commit cf3e7c2

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

tools/generator/CodeGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static void Run (CodeGeneratorOptions options, DirectoryAssemblyResolver resolve
9494
// every type to be fully populated.
9595
opt.UseShallowReferencedTypes = apiSourceAttr != "class-parse";
9696

97-
foreach (var reference in references) {
97+
foreach (var reference in references.Distinct ()) {
9898
try {
9999
Report.Verbose (0, "resolving assembly {0}.", reference);
100100
var assembly = resolver.Load (reference);

0 commit comments

Comments
 (0)