1

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

4

2 回答 2

1

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

于 2012-08-29T04:53:30.567 回答
1

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

就我而言,Azure 包包含对 WebRole 项目的引用。然后,该 WebRole 项目包含对需要混淆的其他几个库项目的项目引用。

构建过程需要三遍:

  1. 构建包含所有库和 Web 项目的解决方案。我已使用 Visual Studio 配置管理器禁用 Azure 包项目的构建,但这不是必需的。
  2. 运行混淆工具来混淆需要它的程序集。
  3. 仅构建和打包 Azure 包(通过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"  />
于 2015-10-08T12:35:25.103 回答