混淆的DLL和Azure包部署

时间:2012-08-29 04:00:37

标签: azure obfuscation

我正在使用FxProtect .NET程序集混淆器,我想将程序包中的混淆.DLL部署到Azure。如何将我混淆的DLL放回包中?我是否解压缩部署到Azure的.CSPKG并将混淆的DLL复制并粘贴到解压缩的.CSPKG文件夹中,然后再将其压缩以进行部署?

2 个答案:

答案 0 :(得分:1)

如果从Visual Studio或MSBUILD打包,我建议你运行一个后期构建事件,混淆生成的.DLL的

答案 1 :(得分:1)

我有类似的情况,我有一组Azure包,其中包含对需要进行模糊处理的程序集的引用(它们是公共SDK的一部分)。我使用Dotfuscator作为混淆工具,但该过程也可能适用于其他供应商。以下是我解决这个问题的方法:

在我的例子中,Azure包包含对WebRole项目的引用。然后,该WebRole项目包含对需要进行模糊处理的其他几个库项目的项目引用。

构建过程需要三遍:

  1. 构建解决方案,其中包含所有库和Web项目。我已使用Visual Studio配置管理器禁用Azure包项目的构建,但这不是必需的。
  2. 运行模糊处理工具以混淆需要它的程序集。
  3. 仅构建和打包Azure软件包(通过Publish目标)和指示MSBuild 以构建任何引用的项目
  4. 最后一部分是关键。如果您没有告诉MSBuild 构建引用的项目,它将重建所有项目,撤消混淆。您可以通过在构建软件包时包含属性BuildProjectReferences=false来实现此目的。

    要从MSBuild脚本构建Azure包,我使用以下命令:

    <!-- This should be run after Obfuscation to ensure the SDK assemblies included in the packages are obfuscated -->
    <MSBuild Projects="..\Path\My.CloudService.ccproj" Targets="Publish" Properties="BuildProjectReferences=false;PublishDir=..\artifacts\MyCloudService"  />