fix assembly rewriter stripping assembly resources
All checks were successful
Release / Get Version (push) Successful in 11s
Release / Build and Publish Nuget (push) Successful in 2m14s
Release / Build and Publish Package (push) Successful in 19m29s

This commit is contained in:
zznty
2024-10-14 00:15:05 +07:00
parent b60100171d
commit b6e88b359f

View File

@@ -19,10 +19,10 @@ internal static class AssemblyRewriter
{ {
_defaultResolver = new(); _defaultResolver = new();
_zipResolver = new(_defaultResolver); _zipResolver = new(_defaultResolver);
_defaultResolver.AddSearchDirectory(Directory.GetCurrentDirectory()); _defaultResolver.AddSearchDirectory(AppContext.BaseDirectory);
_defaultResolver.AddSearchDirectory(Path.Combine(Directory.GetCurrentDirectory(), "DedicatedServer64")); _defaultResolver.AddSearchDirectory(Path.Combine(Directory.GetCurrentDirectory(), "DedicatedServer64"));
#if !DEBUG #if !DEBUG
_defaultResolver.AddSearchDirectory(Path.Join(Directory.GetCurrentDirectory(), "torch64")); _defaultResolver.AddSearchDirectory(Path.Join(AppContext.BaseDirectory, "torch64"));
#endif #endif
} }
@@ -63,17 +63,17 @@ internal static class AssemblyRewriter
private static Assembly ProcessInternal(Stream inputStream, IAssemblyResolver resolver) private static Assembly ProcessInternal(Stream inputStream, IAssemblyResolver resolver)
{ {
using var module = ModuleDefinition.ReadModule(inputStream, new() using var assembly = AssemblyDefinition.ReadAssembly(inputStream, new()
{ {
AssemblyResolver = resolver AssemblyResolver = resolver
}); });
foreach (var fieldDefinition in FindAllToRewrite(module)) foreach (var fieldDefinition in FindAllToRewrite(assembly.MainModule))
{ {
fieldDefinition.IsInitOnly = false; fieldDefinition.IsInitOnly = false;
} }
using var memStream = new MemoryStream(); using var memStream = new MemoryStream();
module.Assembly.Write(memStream); assembly.Write(memStream);
return Assembly.Load(memStream.ToArray()); return Assembly.Load(memStream.ToArray());
} }