FreeSql icon indicating copy to clipboard operation
FreeSql copied to clipboard

Fatal error in Unity CIL Linker

Open 2022Cyberpunk opened this issue 2 years ago • 4 comments

问题描述及重现代码:

// c# code

数据库版本

Unity2021.3.16f1

安装的Nuget包

Put the dll file in the plugins folder of the unity project Asetts: FreeSql.3.2.801 FreeSql.Provider.Sqlite.3.2.801

.net framework/. net core? 及具体版本

net40 企业微信截图_16984108822423

2022Cyberpunk avatar Oct 27 '23 12:10 2022Cyberpunk

System.Data.Sqlite.dll

测试一下这个库,是否能使用

2881099 avatar Oct 27 '23 13:10 2881099

freeSql是不是不支持unity?有问题的是FreeSql.Provider.Sqlite.dll,打包时会报错。

2022Cyberpunk avatar Oct 30 '23 01:10 2022Cyberpunk

Fatal error in Unity CIL Linker Mono.Linker.LinkerFatalErrorException: ILLink: error IL1005: FreeSql.AdoNetExtensions.GetCrud(IDbConnection): Error processing method 'FreeSql.AdoNetExtensions.GetCrud(IDbConnection)' in assembly 'FreeSql.dll' ---> System.InvalidOperationException: No action for the assembly FreeSql.Provider.Dameng, Version=3.2.821.0, Culture=neutral, PublicKeyToken=null defined at Mono.Linker.AnnotationStore.GetAction(AssemblyDefinition assembly) at Mono.Linker.Steps.MarkStep.IsFullyPreserved(TypeDefinition type) at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember) at Mono.Linker.Steps.MarkStep.MarkTypeVisibleToReflection(TypeReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember) at Mono.Linker.Dataflow.ReflectionMethodBodyScanner.<>c__DisplayClass20_4.<HandleCall>b__7() at Mono.Linker.Dataflow.ReflectionMethodBodyScanner.HandleCall(MethodBody callingMethodBody, MethodReference calledMethod, Instruction operation, ValueNodeList methodParams, ValueNode& methodReturnValue) at Mono.Linker.Dataflow.MethodBodyScanner.HandleCall(MethodBody callingMethodBody, Instruction operation, Stack`1 currentStack) at Mono.Linker.Dataflow.MethodBodyScanner.Scan(MethodBody methodBody) at Mono.Linker.Dataflow.ReflectionMethodBodyScanner.ScanAndProcessReturnValue(MethodBody methodBody) at Unity.Linker.Steps.UnityMarkStep.MarkReflectionLikeDependencies(MethodBody body, Boolean requiresReflectionMethodBodyScanner) at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body) at Unity.Linker.Steps.UnityMarkStep.MarkMethodBody(MethodBody body) at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method, DependencyInfo& reason) at Unity.Linker.Steps.UnityMarkStep.ProcessMethod(MethodDefinition method, DependencyInfo& reason) at Mono.Linker.Steps.MarkStep.ProcessQueue() --- End of inner exception stack trace --- at Mono.Linker.Steps.MarkStep.ProcessQueue() at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue() at Mono.Linker.Steps.MarkStep.Process() at Mono.Linker.Steps.MarkStep.Process(LinkContext context) at Unity.Linker.Steps.UnityMarkStep.Process(LinkContext context) at Unity.Linker.UnityPipeline.ProcessStep(LinkContext context, IStep step) at Mono.Linker.Pipeline.Process(LinkContext context) at Unity.Linker.UnityDriver.UnityRun(Boolean noProfilerAllowed, ILogger customLogger) at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling(ILogger customLogger, Boolean noProfilerAllowed) at Unity.Linker.UnityDriver.RunDriver() UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

您好,我遇到了相同的问题。错误来自FreeSql.Provider.Dameng,是否是FreeSql.Provider.Dameng 不支持unity il2cpp方式? 因为我使用mono模式打包时可以了(但目前apk需要打包64位的,必须使用il2cpp进行打包), 是否有解决方法?

9a6c avatar Apr 25 '24 06:04 9a6c

已解决! 方法:升级unity版本, 升级mirror框架的版本(项目用到), 新版本有il2cpp bug的修复, 目前已正常打包

9a6c avatar Apr 26 '24 01:04 9a6c