|
Диагностика грузовиков и коммерческого транспорта | ремонт электроники Полезные советы, общение на тему диагностики грузовиков, коммерческого транспорта. Ремонт электроники. Работа с диагностическими сканерами. |
|
LinkBack | Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#11 (permalink) |
Абориген
Регистрация: 21.12.2013
Сообщений: 3,415
Вы сказали Спасибо: 198
Поблагодарили 1,432 раз(а) в 510 сообщениях
Сказал(а) Фууу!: 4
Сказали Фууу! 86 раз(а) в 77 сообщениях
Откуда: U.S.A
Авто: Jeep Wrangler, GMC Yukon
|
![]()
When using dnSpy to edit .NET assemblies, you may encounter situations where you cannot recompile a file after making edits in C# mode but can successfully save changes when editing in IL mode. This happens due to a few key reasons:
1. C# Decompilation Limitations dnSpy decompiles the .NET IL (Intermediate Language) back into C#, but the generated C# code may not always be a perfect representation of the original source. Certain constructs (e.g., complex generics, iterators, lambda expressions, or obfuscated code) may not be correctly recompiled due to missing context or syntax mismatches. 2. Syntax & Type Checking in C# Mode When editing in C# mode, dnSpy enforces stricter syntax and type-checking rules, which means: Some decompiled code may be missing type information. Certain auto-generated constructs (e.g., anonymous methods, async/await state machines) may not be directly editable. It may reference dependencies that dnSpy does not resolve properly. 3. IL Mode is More Flexible IL mode allows you to modify the raw intermediate language instructions directly, bypassing the C# compiler. Since IL is the actual executable code of the .NET assembly, there are no additional constraints from C# syntax rules. However, editing IL manually requires a good understanding of the .NET runtime and IL instructions. Workarounds for C# Mode Editing If you prefer editing in C# but run into recompilation issues, try the following: 1. Check for Compiler Errors: If the C# edit fails, look for specific error messages in dnSpy. 2. Simplify the Code: Try making smaller edits and recompiling incrementally. 3. Modify in IL Mode Instead: If dnSpy won't compile the edited C# code, edit the corresponding IL instead. 4. Recompile in an External Compiler: If dnSpy struggles with recompilation, you can modify the source externally in Visual Studio and then replace the compiled method in dnSpy. 5. Ensure Dependencies Are Loaded: Some errors come from missing external references, so make sure all required assemblies are loaded. |
![]() |
![]() |
Сказал Спасибо Juan7 за это сообщение: | fee (10.02.2025) |
|
|