我正在使用FxProtect .NET程序集混淆器,我想将程序包中的混淆.DLL部署到Azure。如何将我混淆的DLL放回包中?我是否解压缩部署到Azure的.CSPKG并将混淆的DLL复制并粘贴到解压缩的.CSPKG文件夹中,然后再将其压缩以进行部署?
答案 0 :(得分:1)
如果从Visual Studio或MSBUILD打包,我建议你运行一个后期构建事件,混淆生成的.DLL的
答案 1 :(得分:1)
我有类似的情况,我有一组Azure包,其中包含对需要进行模糊处理的程序集的引用(它们是公共SDK的一部分)。我使用Dotfuscator作为混淆工具,但该过程也可能适用于其他供应商。以下是我解决这个问题的方法:
在我的例子中,Azure包包含对WebRole项目的引用。然后,该WebRole项目包含对需要进行模糊处理的其他几个库项目的项目引用。
构建过程需要三遍:
Publish
目标)和指示MSBuild 不以构建任何引用的项目。最后一部分是关键。如果您没有告诉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" />