2012-08-29 139 views
1

我正在使用FxProtect .NET程序集混淆器,並且想要將包中包含的混淆的.DLL部署到Azure中。如何將我混淆回來的DLL放回到包中?我是否將部署到Azure的.CSPKG解壓縮,然後將混淆的DLL複製並粘貼到提取的.CSPKG文件夾中,然後再次壓縮以部署?混淆了DLL和Azure包的部署

+0

不會B/C包進行加密,以防止篡改的工作(這是你做的基本上就是) 。我不得不問,是否有必要進行混淆處理,因爲代碼將在Azure上託管/保護 - 誰會看到它?不過,請查看SDK中的cspack命令以手動構建.cspkg。 –

+0

包可以加密,但我不相信它是默認的。 –

+0

無論如何,我不確定我是否理解了將DLL部署到雲中的目的? –

回答

1

如果從Visual Studio或MSBUILD包裝,我想建議您運行混淆產生的.DLL的

+0

我該怎麼做?你有命令嗎? – iefpw

+0

經過一些谷歌搜索:http://lonerobot.net/?p=775 - 我不知道你的特定命令行的實際混淆,這你必須自己研究 – Igorek

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" /> 
+0

我知道我很晚回答這個問題,但我認爲它可能對未來尋找解決方案的其他人有用。 –