クルーズコントロールと難読化、どうやって?
-
01-07-2019 - |
質問
これは stackoverflow への最初の質問なので、ここで述べます...
継続的統合スキームにクルーズ コントロールを使用していますが、アセンブリに別の保護層を追加するために難読化を使用したいと考えています。問題は、これについて説明した記事が見つからなかったので、どうすればよいのかわかりません。NAnt などの他の CI ツールを含めた提案も受け付けます。
商用ツールもオプションですので、遠慮せずに回答に含めてください。私が構築していて難読化したいアプリケーションは、ほとんどが Compact Framework 2.0、Dot Net 2.0 ~ 3.5 で書かれています。
現時点では、クルーズ コントロールはリポジトリ内の変更を確認し、特定のソリューションのスクリプトに基づいて devenv を使用してプロジェクトをダウンロードしてビルドします。セットアップ プロジェクトの実行後、セットアップ ファイルを別のフォルダーにコピーします。それを減らしてください。したがって、このプロセスのどこかで難読化する必要があります。
解決
@konstantinos.konstantinidis.myopenid.com:あなたの問題は、継続的統合サーバーではなく、セットアップ プロジェクトにあるようです。
プロジェクトの主な出力を選択するセットアップ プロジェクトがあります。
出力へのファイル参照を使用するように変更します。セットアップ プロジェクトでの設定がもう少し多くなりますが、それでもすべて同じ機能を実現できると思います。
こうすることで、難読化ツールが難読化アセンブリをダンプしているステージング ディレクトリから難読化されたアセンブリを取得できます。
他のヒント
誰かが CruiseControl.NET を使用していると聞いてうれしいです。それは素晴らしいツールです。難読化のためのコマンド ライン ツールを RemoteSoft .NET Obfuscator として使用し、ツールへの呼び出しをビルド スクリプトに統合できます。以下のファイルを実行する方法については、CruiseControl.NET wiki の例を参照してください。
http://www.remotesoft.com/salamander/obfuscator.html
<exec>
<executable>make</executable>
<baseDirectory>D:\dev\MyProject</baseDirectory>
<buildArgs>all</buildArgs>
<buildTimeoutSeconds>10</buildTimeoutSeconds>
<successExitCodes>0,1,3,5</successExitCodes>
<environment>
<variable>
<name>MyVar1</name>
<value>Var1Value</value>
</variable>
<variable name="MyVar2" value="Var2Value"/>
...
</environment>
</exec>