Skip to content

Commit 574288e

Browse files
committed
Fixes assembly resolution for ignored assemblies.
Updates assembly resolution to correctly locate ignored assemblies by using the executing assembly's location, resolving issues where these assemblies could not be found during post-processing.
1 parent a31eccb commit 574288e

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

FishNet.CodeGenerating/ILCore/PostProcessorAssemblyResolver.cs

+10-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Collections.Generic;
44
using System.IO;
55
using System.Linq;
6+
using System.Reflection;
67
using System.Threading;
78
using Unity.CompilationPipeline.Common.ILPostProcessing;
89

@@ -16,7 +17,7 @@ public class PostProcessorAssemblyResolver : BaseAssemblyResolver
1617
[
1718
"FishNet.Runtime.dll"
1819
];
19-
20+
2021
private readonly string[] m_AssemblyReferences;
2122
private readonly Dictionary<string, AssemblyDefinition> m_AssemblyCache = new Dictionary<string, AssemblyDefinition>();
2223
private readonly ICompiledAssembly m_CompiledAssembly;
@@ -34,7 +35,7 @@ public override AssemblyDefinition Resolve(AssemblyNameReference name, ReaderPar
3435
{
3536
if (name.Name == "mscorlib" || name.Name == "netstandard")
3637
return base.Resolve(name, parameters);
37-
38+
3839
lock (m_AssemblyCache)
3940
{
4041
if (name.Name == m_CompiledAssembly.Name)
@@ -50,12 +51,12 @@ public override AssemblyDefinition Resolve(AssemblyNameReference name, ReaderPar
5051
fileName = ResolveAssemblyPath($"{name.Name}.dll");
5152
pathResolved = true;
5253
}
53-
54+
5455
if (fileName == null)
5556
{
5657
return base.Resolve(name, parameters);
5758
}
58-
59+
5960
// Try to resolve absolute file path to assembly
6061
if (!pathResolved)
6162
fileName = ResolveAssemblyPath(fileName);
@@ -89,7 +90,10 @@ private string ResolveAssemblyPath(string assemblyPath)
8990
return assemblyPath;
9091

9192
if (IgnoreResolveAssemblies.Contains(assemblyPath))
92-
return assemblyPath;
93+
{
94+
var currentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
95+
return Path.Combine(currentDirectory!, assemblyPath);
96+
}
9397

9498
foreach (var searchPath in AssemblySearchPaths)
9599
{
@@ -179,4 +183,4 @@ public void AddAssemblyDefinitionBeingOperatedOn(AssemblyDefinition assemblyDefi
179183
m_SelfAssembly = assemblyDefinition;
180184
}
181185
}
182-
}
186+
}

0 commit comments

Comments
 (0)