用于生成混淆的NuGet包的工作流程

时间:2016-11-10 23:09:05

标签: nuget obfuscation nuget-package eazfuscator

我们一直在分解我们的.NET应用程序,因此在多个解决方案中使用的项目都是作为NuGet包构建和使用的。其中一些项目需要进行模糊处理(我们使用Eazfuscator),我不确定正确的工作流程应该是什么。

现在,我们的CI流程会编译代码,运行检查并运行自动单元测试。这很好用。但是,如果我为每个构建引入模糊处理,我将不得不打破依赖于我们使用InternalsVisibleToAttribute的单元测试。我可以运行现有的进程,然后假设一切都很好(编译,没有引入检查错误,并且单元测试通过)为不同的配置执行后续构建,可以进行模糊处理。但后来我没有测试混淆代码完全

什么对您的商店有用?

另外,我还没有尝试过,但是通过NuGet提供的模糊组件减少了设置符号服务器的实用性?调试情况如何?

注意:这些软件包全部供内部使用,直到我们到达提供给客户的消费应用程序,这就是我要求调试到软件包的原因。

更新12/12/2016

我们最终使用的工作流程是拥有构建服务器:

  1. 通常编译
  2. 运行单元测试和检查
  3. 再次编译 - 这次传入的参数会启用OBFUSCATE的条件编译符号
    • 现在InternalsVisibleToAttribute将被禁止(以及我们引用内部的任何测试)
  4. 发布到我们的内部Feed
  5. 这个和另一个更改包括ObfuscateAsemblyAttribute结果,这些程序集已标记为在构建消费应用程序时进行模糊处理。该构建任务进行了实际的混淆。

    我对此并不是100%满意,但这意味着我们没有使用多种构建配置。

    但我仍然对其他人正在做的事感兴趣。

0 个答案:

没有答案