Обфускация пакета Nuget для .NET Standard с помощью SmartAssembly работает на компьютере под управлением .NET 4.7.1, но не работает на .NET 4.5.2 - PullRequest
0 голосов
/ 02 ноября 2018

Мой проект .net 4.5 ссылается на пакет nuget (System.ValueTuple 4.3.0, нацеленный на .netstandard). Код обфусцируется с помощью SmartAssembly 6.10 (я знаю, что эта версия не поддерживает .NET Standard).

Программа отлично работает на машине с .NET 4.7.1. Сбой программы на компьютере под управлением .NET 4.5.2 при достижении кода Value Tuple с помощью:

System.InvalidProgramException: Common Language Runtime detected an invalid program

Я понимаю, почему это не работает на 4.5.2, но неясно, почему это работает на 4.7.1. Если моя версия SmartAssembly не поддерживает .NET Standard, я ожидаю увидеть исключение на обеих машинах, независимо от версии .NET.

Излишне говорить, что когда SmartAssembly не используется, программа отлично работает на обеих машинах.

Благодарен за ваши мысли.

1 Ответ

0 голосов
/ 22 января 2019

Я задал тот же вопрос на форуме поддержки SA и получил ответ, который в основном говорит: «Стандарт .NET - странное существо».

Очевидно, не отмечая это как принятый ответ, но это все, что у нас есть на данный момент.

...