使用SmartAssembly对目标为.NET Standard的Nuget包进行混淆处理可在运行.NET 4.7.1的计算机上运行,​​但在.NET 4.5.2上将失败

时间:2018-11-02 13:59:56

标签: obfuscation smartassembly

我的.net 4.5项目引用了一个nuget包(System.ValueTuple 4.3.0,目标是.netstandard)。 使用SmartAssembly 6.10混淆了代码(我知道此版本不支持.NET Standard)。

程序在运行.NET 4.7.1的计算机上正常运行。 通过以下方式访问Value Tuple代码时,该程序在运行.NET 4.5.2的计算机上失败:

System.InvalidProgramException: Common Language Runtime detected an invalid program

我理解为什么它在4.5.2上失败,但是不清楚为什么在4.7.1上起作用。如果我的SmartAssembly版本不支持.NET Standard,则无论.NET版本如何,我都希望这两台计算机都能看到该异常。

不用说,当不使用SmartAssembly时,程序在两台机器上都可以正常运行。

感谢您的想法。

1 个答案:

答案 0 :(得分:0)

我在SA支持论坛上向same question提问,得到的答案基本上是“ .NET标准是一个奇怪的生物”。

显然没有将其标记为可接受的答案,但这是我们目前所拥有的。