Closed 2876 closed 2 years ago
1.0.3编译正常,但无法处理异常,所以选择1.1.0,但该版本在异步方法中无法编译通过。代码如下 `public class Program { static void Main(string[] args) { }
[Log] private async Task Sleep() { await Task.Delay(500); } } [AttributeUsage(AttributeTargets.Method)] public class LogAttribute : Rougamo.MoAttribute { public override void OnEntry(MethodContext context) { } public override void OnException(MethodContext context) { } public override void OnExit(MethodContext context) { } public override void OnSuccess(MethodContext context) { } }`
异常如下:
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 Fody: An unhandled exception occurred: Exception: Failed to execute weaver F:\Rougamo\src\packages\Rougamo.Fody.1.1.0-alpha\build..\weaver\Rougamo.Fody.dll Type: System.Exception StackTrace: 在 InnerWeaver.ExecuteWeavers() 位置 C:\projects\fody\FodyIsolated\InnerWeaver.cs:行号 219 在 InnerWeaver.Execute() 位置 C:\projects\fody\FodyIsolated\InnerWeaver.cs:行号 111 Source: FodyIsolated TargetSite: Void ExecuteWeavers() [ConsoleApp1.Program/d__1] SetException instruction not found Type: System.InvalidOperationException StackTrace: 在 Rougamo.Fody.ModuleWeaver.FindMoveNextSetExceptionFirstInstruction(MethodDefinition moveNextMethodDef, ExceptionHandler exceptionHandler, Instruction& setExceptionFirst, Instruction& setExceptionLast) 在 Rougamo.Fody.ModuleWeaver.AsyncOnExceptionWithExit(RouMethod rouMethod, MethodDefinition moveNextMethodDef, FieldReference mosFieldRef, FieldReference contextFieldRef, FieldReference builderFieldRef, TypeReference returnTypeRef, Instruction setResultIns) 在 Rougamo.Fody.ModuleWeaver.AsyncTaskMethodWeave(RouMethod rouMethod) 在 Rougamo.Fody.ModuleWeaver.WeaveMos() 在 InnerWeaver.ExecuteWeavers() 位置 C:\projects\fody\FodyIsolated\InnerWeaver.cs:行号 196 Source: Rougamo.Fody TargetSite: Void FindMoveNextSetExceptionFirstInstruction(Mono.Cecil.MethodDefinition, Mono.Cecil.Cil.ExceptionHandler, Mono.Cecil.Cil.Instruction ByRef, Mono.Cecil.Cil.Instruction ByRef) ConsoleApp1
麻烦了~~
你项目的framework是什么版本的,我本地试试
4.6.1、4.7.1以及4.8都试过
我发布了 1.1.0-alpha1 版本,你可以更新了再试试
谢谢。经测试当前的问题已修复! 但有新问题,我重新提一个issue~
1.0.3编译正常,但无法处理异常,所以选择1.1.0,但该版本在异步方法中无法编译通过。代码如下 `public class Program { static void Main(string[] args) { }
异常如下:
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 Fody: An unhandled exception occurred: Exception: Failed to execute weaver F:\Rougamo\src\packages\Rougamo.Fody.1.1.0-alpha\build..\weaver\Rougamo.Fody.dll Type: System.Exception StackTrace: 在 InnerWeaver.ExecuteWeavers() 位置 C:\projects\fody\FodyIsolated\InnerWeaver.cs:行号 219 在 InnerWeaver.Execute() 位置 C:\projects\fody\FodyIsolated\InnerWeaver.cs:行号 111 Source: FodyIsolated TargetSite: Void ExecuteWeavers() [ConsoleApp1.Program/d__1] SetException instruction not found
Type:
System.InvalidOperationException
StackTrace:
在 Rougamo.Fody.ModuleWeaver.FindMoveNextSetExceptionFirstInstruction(MethodDefinition moveNextMethodDef, ExceptionHandler exceptionHandler, Instruction& setExceptionFirst, Instruction& setExceptionLast)
在 Rougamo.Fody.ModuleWeaver.AsyncOnExceptionWithExit(RouMethod rouMethod, MethodDefinition moveNextMethodDef, FieldReference mosFieldRef, FieldReference contextFieldRef, FieldReference builderFieldRef, TypeReference returnTypeRef, Instruction setResultIns)
在 Rougamo.Fody.ModuleWeaver.AsyncTaskMethodWeave(RouMethod rouMethod)
在 Rougamo.Fody.ModuleWeaver.WeaveMos()
在 InnerWeaver.ExecuteWeavers() 位置 C:\projects\fody\FodyIsolated\InnerWeaver.cs:行号 196
Source:
Rougamo.Fody
TargetSite:
Void FindMoveNextSetExceptionFirstInstruction(Mono.Cecil.MethodDefinition, Mono.Cecil.Cil.ExceptionHandler, Mono.Cecil.Cil.Instruction ByRef, Mono.Cecil.Cil.Instruction ByRef) ConsoleApp1
麻烦了~~