#.net #.net-core #.net-5
Вопрос:
Я использовал обрезку .net 5 в однофайловом приложении. Я начал использовать стороннюю библиотеку для работы с PDF-файлами, это сломало обрезку. Библиотека (Аспоз.PDF) одновременно запутан и подписан. Компоновщик выходит из строя во время его анализа.
ILLink : error IL1005: .#=zeHKsZT8C2UlFc38B7uHg8a_68Vghn9R01uGmTgc=.#=zmlKj9i0=(): Error processing method '.#=zeHKsZT8C2UlFc38B7uHg8a_68Vghn9R01uGmTgc=.#=zmlKj9i0=()' in assembly 'Aspose.PDF.dll'
Mono.Linker.LinkerFatalErrorException: ILLink: error IL1005: .#=zeHKsZT8C2UlFc38B7uHg8a_68Vghn9R01uGmTgc=.#=zmlKj9i0=(): Error processing method '.#=zeHKsZT8C2UlFc38B7uHg8a_68Vghn9R01uGmTgc=.#=zmlKj9i0=()' in assembly 'Aspose.PDF.dll'
---> System.ArgumentException: Value does not fall within the expected range.
at Mono.Cecil.MetadataReader.GetMember[TMember](Collection`1 members, MetadataToken token)
Поэтому я хотел проигнорировать обрезку для этой единственной сборки. Я использовал xml-файл, чтобы указать, что я хотел сохранить, следуя записи в блоге, найденной здесь : https://devblogs.microsoft.com/dotnet/customizing-trimming-in-net-core-5/
Добавил это в мой файл .csproj :
<ItemGroup>
<TrimmerRootDescriptor Include="preserve.xml" />
</ItemGroup>
Создал preserve.xml файл со следующим содержимым :
<linker>
<assembly fullname="Aspose.PDF" preserve="all" />
</linker>
Я все еще получаю то же исключение, что заставляет меня думать, что даже если я хочу сохранить всю сборку, она выполняет анализ и выходит из строя…
Похоже, я не могу заставить компоновщика игнорировать эту сборку и просто продолжать… Есть какие-нибудь идеи/указания ?