1

FxProtect .NET アセンブリ難読化ツールを使用しており、パッケージ内の難読化された .DLL を Azure にデプロイしたいと考えています。難読化した DLL をパッケージに戻すにはどうすればよいですか? Azure にデプロイされる .CSPKG を解凍し、難読化された DLL を抽出した .CSPKG フォルダーにコピー アンド ペーストしてから、もう一度 zip してデプロイしますか?

4

2 に答える 2

1

難読化する必要があるアセンブリへの参照を含む一連の Azure パッケージがあるという同様の状況があります (それらはパブリック SDK の一部です)。私は Dotfuscator を難読化ツールとして使用していますが、このプロセスは他のベンダーでも機能する可能性があります。この問題を解決した方法は次のとおりです。

私の場合、Azure パッケージには WebRole プロジェクトへの参照が含まれています。その WebRole プロジェクトには、難読化が必要な他のいくつかのライブラリ プロジェクトへのプロジェクト参照が含まれています。

ビルド プロセスには 3 つのパスがあります。

  1. すべてのライブラリと Web プロジェクトを含むソリューションをビルドします。必須ではありませんが、Visual Studio 構成マネージャーを使用して Azure パッケージ プロジェクトのビルドを無効にしました。
  2. 難読化ツールを実行して、それを必要とするアセンブリを難読化します。
  3. Publish(ターゲットを介して) Azure パッケージのみをビルドしてパッケージ化し、参照されているプロジェクトもビルドしないように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 に答える
1

Visual Studio または MSBUILD からパッケージ化する場合は、生成された .DLL を難読化するビルド後のイベントを実行することをお勧めします。

于 2012-08-29T04:53:30.567 に答える