{
if (loader.Corlib != null && !(loader.Corlib is AssemblyBuilder)) {
Builder.__SetImageRuntimeVersion (loader.Corlib.ImageRuntimeVersion, 0x20000);
+ } else if (module.Compiler.Settings.RuntimeMetadataVersion != null) {
+ Builder.__SetImageRuntimeVersion (module.Compiler.Settings.RuntimeMetadataVersion, 0x20000);
} else {
// Sets output file metadata version when there is no mscorlib
switch (module.Compiler.Settings.StdLibRuntimeVersion) {
}
}
+ public AssemblyDefinitionStatic CompiledAssembly { get; set; }
+
public Universe Domain {
get {
return domain;
return version_mismatch;
}
+ //
+ // Recursive reference to compiled assembly checks name only. Any other
+ // details (PublicKey, Version, etc) are not yet known hence cannot be checked
+ //
+ ParsedAssemblyName referenced_assembly;
+ if (Fusion.ParseAssemblyName (args.Name, out referenced_assembly) == ParseAssemblyResult.OK && CompiledAssembly.Name == referenced_assembly.Name)
+ return CompiledAssembly.Builder;
+
// AssemblyReference has not been found in the domain
// create missing reference and continue
return domain.CreateMissingAssembly (args.Name);