56 Commits
Author SHA1 Message Date
Siegfried Pammer 356d7a1b43 Fix #3408: Wrong exported assembly type 2025-03-21 10:05:53 +01:00
Siegfried Pammer 53522c45f8 #3401: fix missing file extension if name contains ':' 2025-02-21 15:52:11 +01:00
Siegfried Pammer 31bbcf41bc Fix handling of file extensions in project export. 2025-02-21 09:14:23 +01:00
Siegfried Pammer 292c21d68e #3401: Treat class name as single name and not as path. 2025-02-21 07:32:32 +01:00
Siegfried Pammer 0096994679 Fix #3401: normalize directory separators to use the current platform separator 2025-02-20 10:00:59 +01:00
Siegfried Pammer e8a9227483 Fix #3264: Do not allow zero-length segments in CleanUpName: Escape path separator characters at the start of a segment. 2024-08-17 19:38:53 +02:00
Siegfried Pammer 67eade3e05 Merge pull request #3191 from icsharpcode/file-loaders
Add IFileLoader API
2024-04-01 11:08:50 +02:00
Siegfried Pammer 1fca3da27b Fix #3072: Ignore resources have the same name as a namespace. 2024-03-31 18:51:05 +02:00
Siegfried Pammer 963ff7cb3d Fix #3151: Make IProjectFileWriter API public 2024-03-31 18:46:46 +02:00
Siegfried Pammer 2d90c457c8 Lift some artificial restrictions to PEFile in WholeProjectDecompiler and ReflectionDisassembler. 2024-03-28 20:42:11 +01:00
Siegfried Pammer ca78d4a14d Use MetadataFile instead of PEFile in TypeSystem. 2024-03-24 15:35:13 +01:00
Siegfried Pammer 7cb8e6534d Fix #2850: Make sure that type names longer than 255 characters are handled correctly by WholeProjectDecompiler.GetFileNameForHandle 2022-12-03 21:44:22 +01:00
Siegfried Pammer cedad6d5e8 #2850: swap try-catch and using statement so that exception handling shows the file being decompiled causing the IOException. 2022-12-03 18:42:18 +01:00
Siegfried Pammer ff0e929866 - Introduce ProjectItemInfo instead of tuples in WholeProjectDecompiler project item generation.
- Set 'LogicalName' attribute for all decompiled resources. This makes it possible to correctly recompile projects with resource names that are not valid filenames.
- Set Generator and SubType properties for XAML files.
2022-12-03 16:55:45 +01:00
Siegfried Pammer 4eea4bf353 Fix #2830: Can't decompile project with / in resource name on Windows 2022-12-03 16:55:45 +01:00
Daniel Grunwald 6fd5ca1e60 Merge pull request #2832 from icsharpcode/roslyn-440
Update Roslyn used for tests to 4.4.0
2022-11-10 23:00:47 +01:00
Siegfried Pammer c3d0e5ecc2 Fix #1784: Move RemoveEmbeddedAttributes transform to ICSharpCode.Decompiler and do no longer decompile embedded attributes in WholeProjectDecompiler and PortablePdbWriter. 2022-11-04 21:20:45 +01:00
Siegfried Pammer 71e4d51786 Fix #2807: Detect when a compiler-generated/hidden type needs to be decompiled in WholeProjectDecompiler. 2022-11-04 13:02:38 +01:00
Siegfried Pammer 343694c549 Generalize progress reporting for decompilation and PDB generation. 2022-10-21 10:18:05 +02:00
Siegfried Pammer 5046e4cf60 Fix #2718, Fix #2719, Fix #2725: Remove WPF compiler-generated code. 2022-07-15 18:17:27 +02:00
Siegfried Pammer 8dd721aee3 Fix #2706: Filenames and directories truncated to 30 characters.
With the built-in support for long paths in .NET 6.0, we no longer need to check for the registry key. The only limitation that remains is maxSegmentLength, which seems to be 255 on all commonly used file systems/all platforms. Also there is no need to differentiate between Windows and other platforms.

- Windows Explorer in Windows 10 seems to be fine with files generated by ILSpy that have names longer than 260 characters.
- Notepad++ and other applications seem to use 8.3 path syntax to access the file.
- Visual Studio 2022 does not like the long path names, affected users should raise an issue with MS. ILSpy generates proper paths.
2022-06-15 23:04:56 +02:00
Andrii Kurdiumov a2e9a2f5d8 Allow decompile C++/CLI assemblies
When C++/CLI project produce assembly it generates target attribute like this
```
[assembly: TargetFramework(".NETCoreApp,Version=7.0", FrameworkDisplayName = "")]
```
when C# generates `TargetFrameworkAttribute` it produce slightly different format
```
[assembly: TargetFramework(".NETCoreApp,Version=v7.0", FrameworkDisplayName = "")]
```
2022-05-30 13:25:02 +06:00
Siegfried Pammer 2646265069 #2565: Improve GetFileNameForResource: Assume that input is already a filename. 2021-12-08 23:30:58 +01:00
Siegfried Pammer 37456672d7 WholeProjectDecompiler: set segment length for Unix to 255. 2021-12-07 19:25:23 +01:00
Siegfried Pammer a48f0d311c Fix #2330: Add conditional sub directory support 2021-12-05 16:33:39 +01:00
Siegfried Pammer bf336d85cf Fix second issue mentioned in #2565: resource names such as path/to/file.ext are now properly handled as relative paths. 2021-12-03 15:50:06 +01:00
Siegfried Pammer 849161e362 - Replace DecompilerTextView.CleanUpName with direct uses of WholeProjectDecompiler.CleanUpFileName
- Add file extension handling to WholeProjectDecompiler.CleanUpName
- Add WholeProjectDecompiler.SanitizeFileName, which respects file extensions
2021-12-03 14:10:45 +01:00
Siegfried Pammer 19d5ea4095 Fix #2505: Do treat whole resource name as file name without directory at the start of GetFileNameForResource. 2021-09-18 12:32:20 +02:00
Siegfried Pammer 07199e2ecf Fix #2038: Add proper support for Long paths on Windows 10 and limit path segments to 255 characters (with long path support) or 30 characters. If a PathTooLongException is thrown display a better error message on project export. 2021-09-06 21:02:31 +02:00
Daniel Grunwald bd9aabeae2 Update to dotnet-format 5.1.225507.
This makes the formatting expected by our CI consistent with that generated by VS2019.9.
2021-05-07 22:23:09 +02:00
Siegfried Pammer 635013329a Fix #2358: use current Path.DirectorySeparatorChar instead of hard-coded backslashes. 2021-04-30 22:11:56 +02:00
Siegfried Pammer 2a9a5237d1 Fix exception when trying to export project for which no target-framework moniker was detected. 2021-04-16 14:08:24 +02:00
Siegfried Pammer 2ed52b9634 #2362: Provide more information on assembly resolve errors 2021-04-16 14:06:23 +02:00
Siegfried Pammer c75ead8212 Merge pull request #2201 from wwh1004/fix1
fix GetFileNameForResource not in accordance with new directory style
2020-11-05 20:47:14 +01:00
Daniel Grunwald 0de6238d65 Support resolving assembly references within a bundle. 2020-11-01 15:56:16 +01:00
文煌 77dc975f9b fix GetFileNameForResource not in accordance with https://github.com/icsharpcode/ILSpy/pull/2157 2020-10-28 00:53:46 +08:00
文煌 c2c1bcc570 write empty RootNamespace if need 2020-10-14 22:16:40 +02:00
文煌 4b27bb5427 copy file overwrite 2020-10-14 22:16:28 +02:00
文煌 908c3081e9 don't write app.manifest if it is default 2020-10-14 22:15:01 +02:00
文煌 65bf8fe92e do not write app icon and manifest if null 2020-10-14 22:15:01 +02:00
文煌 4a8cca26a1 write app manifest 2020-10-14 22:15:01 +02:00
文煌 1ac59a79cd copy app.config if exists 2020-10-14 22:15:01 +02:00
文煌 8c54f3caa1 write application icon file 2020-10-14 22:15:01 +02:00
文煌 d612008c9f write OutputType for asp.net library 2020-10-14 22:14:07 +02:00
文煌 bc888117e9 write EmbeddedResource for non .resx file 2020-10-14 22:03:41 +02:00
文煌 9742a7cfae 1. Create sub directory when namespace contains dot
2. Detect when .NET 3.0/3.5 is required
2020-10-14 22:02:17 +02:00
文煌 5d80c56189 don't write Reference for .NET Core shared assembly 2020-10-14 21:57:10 +02:00
文煌 e8e0f89f6d don't write HintPath for .NET Core shared assembly 2020-10-14 21:54:56 +02:00
文煌 a5fdb05c6f use relative path if reference and target project are in the same root path 2020-10-14 21:45:43 +02:00
文煌 8152e40d5c don't write HintPath for GAC assembly 2020-10-14 21:35:09 +02:00