mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
Update to AsmResolver 6 beta 4
This commit is contained in:
parent
85172b7393
commit
0d60120c08
@ -8,12 +8,12 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AsmResolver.DotNet" Version="6.0.0-beta.3" />
|
<PackageReference Include="AsmResolver.DotNet" Version="6.0.0-beta.4" />
|
||||||
<PackageReference Include="AssetRipper.Gee.External.Capstone" Version="2.3.2" />
|
<PackageReference Include="AssetRipper.Gee.External.Capstone" Version="2.3.2" />
|
||||||
<PackageReference Include="AssetRipper.Mining.PredefinedAssets" Version="1.5.0" />
|
<PackageReference Include="AssetRipper.Mining.PredefinedAssets" Version="1.5.0" />
|
||||||
<PackageReference Include="AssetRipper.Primitives" Version="3.2.0" />
|
<PackageReference Include="AssetRipper.Primitives" Version="3.2.0" />
|
||||||
<PackageReference Include="AssetRipper.Tpk" Version="1.1.0" />
|
<PackageReference Include="AssetRipper.Tpk" Version="1.1.0" />
|
||||||
<PackageReference Include="Samboy063.Cpp2IL.Core" Version="2022.1.0-development.1374" />
|
<PackageReference Include="Samboy063.Cpp2IL.Core" Version="2022.1.0-development.1390" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -43,10 +43,7 @@ public partial class BaseManager : IAssemblyManager
|
|||||||
AssemblyDefinition assembly;
|
AssemblyDefinition assembly;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MemoryStream memoryStream = new();
|
assembly = AssemblyDefinition.FromStream(stream);
|
||||||
stream.CopyTo(memoryStream);
|
|
||||||
assembly = AssemblyDefinition.FromBytes(memoryStream.ToArray());
|
|
||||||
//assembly = AssemblyDefinition.FromStream(stream);
|
|
||||||
}
|
}
|
||||||
catch (BadImageFormatException badImageFormatException)
|
catch (BadImageFormatException badImageFormatException)
|
||||||
{
|
{
|
||||||
@ -95,16 +92,13 @@ public partial class BaseManager : IAssemblyManager
|
|||||||
|
|
||||||
public virtual void Read(Stream stream, string fileName)
|
public virtual void Read(Stream stream, string fileName)
|
||||||
{
|
{
|
||||||
MemoryStream memoryStream = new();
|
AssemblyDefinition assembly = AssemblyDefinition.FromStream(stream);
|
||||||
stream.CopyTo(memoryStream);
|
|
||||||
AssemblyDefinition assembly = AssemblyDefinition.FromBytes(memoryStream.ToArray());
|
|
||||||
//AssemblyDefinition assembly = AssemblyDefinition.FromStream(stream);//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
assembly.InitializeResolvers(this);
|
assembly.InitializeResolvers(this);
|
||||||
fileName = Path.GetFileNameWithoutExtension(fileName);
|
fileName = Path.GetFileNameWithoutExtension(fileName);
|
||||||
string assemblyName = ToAssemblyName(assembly);
|
string assemblyName = ToAssemblyName(assembly);
|
||||||
m_assemblies.Add(fileName, assembly);
|
m_assemblies.Add(fileName, assembly);
|
||||||
m_assemblies[assemblyName] = assembly;
|
m_assemblies[assemblyName] = assembly;
|
||||||
m_assemblyStreams.Add(assembly, memoryStream);
|
m_assemblyStreams.Add(assembly, stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Unload(string fileName)
|
public virtual void Unload(string fileName)
|
||||||
|
|||||||
@ -19,11 +19,8 @@ public sealed class MonoManager : BaseManager
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Needs FromStream
|
|
||||||
using Stream stream = gameStructure.FileSystem.File.OpenRead(assemblyPath);
|
using Stream stream = gameStructure.FileSystem.File.OpenRead(assemblyPath);
|
||||||
using MemoryStream memoryStream = new();
|
PEFile peFile = PEFile.FromStream(stream);
|
||||||
stream.CopyTo(memoryStream);
|
|
||||||
PEFile peFile = PEFile.FromBytes(memoryStream.ToArray());
|
|
||||||
if (!peFile.OptionalHeader.GetDataDirectory(DataDirectoryIndex.ClrDirectory).IsPresentInPE)
|
if (!peFile.OptionalHeader.GetDataDirectory(DataDirectoryIndex.ClrDirectory).IsPresentInPE)
|
||||||
{
|
{
|
||||||
Logger.Info(LogCategory.Import, $"Skipping native assembly: {assemblyName}");
|
Logger.Info(LogCategory.Import, $"Skipping native assembly: {assemblyName}");
|
||||||
|
|||||||
@ -144,7 +144,7 @@ public sealed class GameStructure : IDisposable
|
|||||||
if (resFile is not null)
|
if (resFile is not null)
|
||||||
{
|
{
|
||||||
resFile.Stream.Position = 0;
|
resFile.Stream.Position = 0;
|
||||||
AssemblyManager.Read(resFile.Stream, assemblyName);
|
AssemblyManager.Read(resFile.Stream.CreateReference(), assemblyName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -32,7 +32,7 @@ public sealed class NullRefReturnProcessor(ScriptContentLevel scriptContentLevel
|
|||||||
{
|
{
|
||||||
if (method.Signature?.ReturnType is ByReferenceTypeSignature)
|
if (method.Signature?.ReturnType is ByReferenceTypeSignature)
|
||||||
{
|
{
|
||||||
method.CilMethodBody = new CilMethodBody(method);
|
method.CilMethodBody = new CilMethodBody();
|
||||||
CilInstructionCollection instructions = method.CilMethodBody.Instructions;
|
CilInstructionCollection instructions = method.CilMethodBody.Instructions;
|
||||||
instructions.Add(CilOpCodes.Ldnull);
|
instructions.Add(CilOpCodes.Ldnull);
|
||||||
instructions.Add(CilOpCodes.Throw);
|
instructions.Add(CilOpCodes.Throw);
|
||||||
|
|||||||
@ -76,7 +76,7 @@ public sealed class UnmanagedConstraintRecoveryProcessor : IAssetProcessor
|
|||||||
{
|
{
|
||||||
if (!genericParameter.HasCustomAttribute("System.Runtime.CompilerServices", "IsUnmanagedAttribute"))
|
if (!genericParameter.HasCustomAttribute("System.Runtime.CompilerServices", "IsUnmanagedAttribute"))
|
||||||
{
|
{
|
||||||
genericParameter.AddCustomAttribute(genericParameter.Module!.DefaultImporter.ImportMethod(constructor));
|
genericParameter.AddCustomAttribute(genericParameter.DeclaringModule!.DefaultImporter.ImportMethod(constructor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AssetRipper.CIL" Version="1.1.6" />
|
<PackageReference Include="AssetRipper.CIL" Version="1.2.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AsmResolver.DotNet" Version="6.0.0-beta.3" />
|
<PackageReference Include="AsmResolver.DotNet" Version="6.0.0-beta.4" />
|
||||||
<PackageReference Include="AssetRipper.Primitives" Version="3.2.0" />
|
<PackageReference Include="AssetRipper.Primitives" Version="3.2.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ public static class ResolutionExtensions
|
|||||||
{
|
{
|
||||||
public static TypeDefinition CheckedResolve(this ITypeDescriptor reference)
|
public static TypeDefinition CheckedResolve(this ITypeDescriptor reference)
|
||||||
{
|
{
|
||||||
if (reference.Module == null)
|
if (reference.ContextModule == null)
|
||||||
{
|
{
|
||||||
throw new ResolutionException(reference);
|
throw new ResolutionException(reference);
|
||||||
}
|
}
|
||||||
@ -19,7 +19,7 @@ public static class ResolutionExtensions
|
|||||||
|
|
||||||
public static MethodDefinition CheckedResolve(this IMethodDefOrRef reference)
|
public static MethodDefinition CheckedResolve(this IMethodDefOrRef reference)
|
||||||
{
|
{
|
||||||
if (reference.Module == null)
|
if (reference.ContextModule == null)
|
||||||
{
|
{
|
||||||
throw new ResolutionException(reference);
|
throw new ResolutionException(reference);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,7 +81,7 @@ internal static class TypeDefinitionExtensions
|
|||||||
|
|
||||||
public static bool TryGetPrimitiveType(this TypeDefinition typeDefinition, out PrimitiveType primitiveType)
|
public static bool TryGetPrimitiveType(this TypeDefinition typeDefinition, out PrimitiveType primitiveType)
|
||||||
{
|
{
|
||||||
if ((typeDefinition.Module?.Assembly?.IsCorLib ?? false) && typeDefinition.ToTypeSignature() is CorLibTypeSignature corLibTypeSignature)
|
if ((typeDefinition.DeclaringModule?.Assembly?.IsCorLib ?? false) && typeDefinition.ToTypeSignature() is CorLibTypeSignature corLibTypeSignature)
|
||||||
{
|
{
|
||||||
primitiveType = corLibTypeSignature.ToPrimitiveType();
|
primitiveType = corLibTypeSignature.ToPrimitiveType();
|
||||||
return primitiveType.IsCSharpPrimitive();
|
return primitiveType.IsCSharpPrimitive();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user