【问题标题】:'Archive' action in Visual Studio Xamarin is packaging DLL before obfuscationVisual Studio Xamarin 中的“存档”操作是在混淆之前打包 DLL
【发布时间】:2020-06-10 14:03:06
【问题描述】:

我们最近从 VS2017 迁移到 VS2019,构建 Xamarin Forms 应用程序。多年来,我们在混淆方面没有遇到任何问题,但现在我们有了一个很好的解决方案。总结:最终APK文件中的项目DLL是未混淆版本,而不是混淆版本。

如果我们正常构建 Android 应用程序(在发布配置中),它可以正常工作:反编译文件会按预期显示经过混淆的代码 - 完全无法理解。它还成功地将其从其工作的“dfout”文件夹(在“obj”下)复制到“bin”文件夹,因此构建过程会按应有的方式传播混淆文件;一切都很酷。

但是...当您运行“存档”来创建 APK 文件时...工作方式有所不同。经过数小时的仔细检查,我们确定确实正在发生,但我们不知道为什么以及如何修复它:项目 DLL(应该放在 APK 中)是从未混淆的代码中获取的。然后在打包完成后运行混淆,将正确的 DLL 留在“obj”和“bin”文件夹中,但打包后的 APK 中的是未混淆的版本。

这到底是怎么回事?

【问题讨论】:

    标签: android visual-studio xamarin dotfuscator


    【解决方案1】:

    在另一个 StackOverflow 问题的评论线程中找到了解决方案。

    基本上这是 Dotfuscator 与 VS2019 一起使用的问题,这需要一些新的 Dotfuscator 目标文件才能工作。最初这些也不起作用,但在删除所有 bin 和 obj 文件夹并在管理员模式下重新启动 VS 后,就成功了。

    Dotfuscator obfuscates stand alone assembly but not the APK archive

    【讨论】:

    • 你可以标记这个答案,这将帮助更多有同样问题的人:)。
    • @JackHua-MSFT 只是等待时间过去,直到它让我:)
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多