Skip to content

Commit 4a37cc2

Browse files
committed
Fix Oxide.References type conflicts
1 parent 51618fb commit 4a37cc2

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

src/Services/CompilationService.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,18 @@ private async ValueTask<CompilerMessage> CompileAsync(CompilerData compilerData,
166166
case ".exe":
167167
case ".dll":
168168
{
169+
MetadataReferenceProperties properties = default;
170+
171+
// Alias Oxide.References so its merged types don't conflict with game/runtime types
172+
if (fileName.Equals("Oxide.References.dll", StringComparison.OrdinalIgnoreCase))
173+
{
174+
properties = new MetadataReferenceProperties(aliases: ImmutableArray.Create("References"));
175+
}
176+
169177
references[fileName] = File.Exists(referenceFile.Name) && (referenceFile.Data == null ||
170178
referenceFile.Data.Length == 0)
171-
? MetadataReference.CreateFromFile(referenceFile.Name)
172-
: MetadataReference.CreateFromImage(referenceFile.Data, filePath: referenceFile.Name);
179+
? MetadataReference.CreateFromFile(referenceFile.Name, properties)
180+
: MetadataReference.CreateFromImage(referenceFile.Data, properties, filePath: referenceFile.Name);
173181

174182
continue;
175183
}

0 commit comments

Comments
 (0)