1

ディレクトリ内のファイル群を難読化しようとしていますが、ビルドするたびに生成されるファイルが増えています。私は、新しいファイルがディレクトリに追加されるたびにxmlファイルを生成するMSBUILDタスクを使用してDotfuscator構成XMLファイルを動的に作成する方法があるかどうかを知りたいですか?MSBUILD動的にConfig XML Dotfuscatorを作成します

答えて

2

これはDirectory inputを使用するのに適している場合があります。このタイプのDotfuscator入力は、単一のアセンブリ(.exeまたは.dll)を表すのではなく、ディレクトリ内のすべてのアセンブリを取得します。ディレクトリの内容が変更されると、Dotfuscatorのビルドは新しいアセンブリを自動的に取得します。

は、ディレクトリの入力とDotfuscatorの設定ファイルを作成するGUIを開き、通常どおり、代わりに 参照...ダイアログからファイルを選択する(方向 for Community Edition's GUIfor Professional Edition's standalone GUI)、同じように入力を追加するにはディレクトリに移動し、 "ファイル名"が "フォルダ選択"として表示されている間に "開く"をクリックします。次に、構成を保存します。

これ以降、Dotfuscator(スタンドアロンGUI、コマンドライン、Visual Studioインテグレーション、またはMSBuildタスクのいずれか)を実行するたびに、ディレクトリ内のすべてのアセンブリが入力として処理されます。

:あなたは、configファイル自体を見れば、あなたはそれはまだ、個々のアセンブリの一覧が表示されますことを驚くかもしれません:

<input> 
    <loadpaths /> 
    <asmlist> 
    <package refid="19e1b0c5-7221-476f-af4b-bafef68edc95"> 
     <file dir="C:\code\BasicTestApp\BasicTestApp\bin" name="Debug" /> 
     <asmlist> 
     <inputassembly refid="a6da5d8d-c181-4103-840d-d8cc7c85937a"> 
      <option>honoroas</option> 
      <option>stripoa</option> 
      <option>transformxaml</option> 
      <file dir="" name="BasicTestApp.exe" /> 
     </inputassembly> 
     <inputassembly refid="df84dad0-fbe8-49ab-b8c8-9fb59e706785"> 
      <option>honoroas</option> 
      <option>stripoa</option> 
      <option>library</option> 
      <option>transformxaml</option> 
      <file dir="" name="ClassLibrary.dll" /> 
     </inputassembly> 
     </asmlist> 
    </package> 
    </asmlist> 
</input> 

このレイアウトにもかかわらず、DotfuscatorはC:\code\BasicTestApp\BasicTestApp\bin\Debugすべてアセンブリを処理しますこの設定ファイルに基づいてビルドを実行すると、リストされた2つのディレクトリだけでなく、 config内のアセンブリ要素が存在し、GUI内の個々のアセンブリに対してルールを作成できる(たとえば、1つのアセンブリをライブラリモードにするなど)。 リストは、GUIが最後にconfigを変更したときのディレクトリの状態を表します。

免責事項:私はDotfuscatorチームで働いていますが、この質問に私の仕事の一部として答えています。コメントで明確化のために


追加ノート:ディレクトリのパッケージを使用すると、難読化から特定のアセンブリを除外することができた特徴を持っています。これらのアセンブリはPackage Artifactとして扱われ、そのまま入力から出力にコピーされます。これらの除外されたアセンブリを参照する難読化されたアセンブリは、引き続き正しく処理されます。

GUIでこれを行うには、パッケージ内のアセンブリを右クリックし、[パッケージからアセンブリを除外]を選択します。応答のための

<option>artifact</option> 
+0

ありがとう:か、どうかは、各関連<inputassembly>タグの子として以下の<option>タグを追加し、設定ファイルを編集することを好むだろう。今では別の質問があるので、私が使用している.dllの一部が第三者であり、彼らはすでに難読化されているので、フォルダ内のすべてのDLLを難読化したくない。だから私が興味を持っているものは、別の場所にコピーして、Dotfuscatorを使用してそれらを難読化し、それらをパッケージを作成する前にコピーすることができますか?例として、ユーザガイドの任意の場所にドットフロチャートディレクトリのサポートのためのサンプルのmsbuildタスクがありますか? – varun7447

+0

@ varun7447私はあなたのコメントの最初の質問に答えると思う私の答えにメモを追加しました。カスタムアセンブリロードパスを構成する必要があるため、いくつかのDLLをコピーする代わりに、その方法を使用することをお勧めします(難読化されたDLLは、除外されたDLLを参照します。 MSBuildのサポートに関する2番目の質問は、このケースの具体例はありませんが、パッケージは設定ファイルの機能なので、設定ファイルのパスをDotfuscateタスクのConfigPathプロパティに渡すだけです。 –

+0

これは本当に役に立ちます。あなたの迅速な対応に感謝。 – varun7447

関連する問題