MSBuild リファレンス
MSBuild と一緒に Dotfuscator を使用する方法の詳細については、MSBuild インターフェイスのページを参照してください。
インストール場所
Dotfuscator の MSBuild コンポーネントは、使用したインストール パッケージに応じて、次のディレクトリにあります。
インストール パッケージ | ディレクトリ |
---|---|
Windows インストーラー | $(MSBuildProgramFiles32)\MSBuild\PreEmptive\Dotfuscator\7 |
NuGet パッケージ | {install dir}/tools/msbuilddir |
ここで、
$(MSBuildProgramFiles32)
は予約済みの MSBuild プロパティで、 Windows のC:\Program Files (x86)
ディレクトリ(64 ビット版)およびC:\Program Files
(32 ビット版)を指します。{install dir}
は、NuGet パッケージのインストール時に示した Dotfuscator インストール ディレクトリです。
ターゲットのリファレンス
Dotfuscator の MSBuild ターゲット、PreEmptive.Dotfuscator.Common.targets を使用すると、Dotfuscator を Visual Studio または MSBuild プロジェクトに簡単に統合することができます。 MSBuild ターゲットは、パッケージを行う前、アセンブリのビルド処理の直後に Dotfuscator を実行するよう、設計されています。
利用可能なプロパティ
Dotfuscator の MSBuild ターゲットによって認識されるプロパティは次のとおりです。
-
- Dotfuscator の統合を動作させるかどうかを決定します。
- "true" の場合は、Dotfuscator によりプロジェクトが保護されます。
- "false" の場合は、このビルドでは Dotfuscator がスキップされます。
- このプロパティは、Dotfuscator の MSBuild ターゲットがインポートされるプロジェクト ファイルで利用できます。
- このプロパティの既定値は "false" です。
- Dotfuscator の統合を動作させるかどうかを決定します。
-
- Dotfuscator 構成ファイルの(MSBuild プロジェクト ファイルと同じディレクトリからの相対)パスです。
- このファイルは、"DotfuscatorGenerateConfigFileIfMissing" を "true" に設定する場合にはなくてもかまいません。
- このプロパティは、Dotfuscator の MSBuild ターゲットがインポートされるプロジェクト ファイルで利用できます。
- 既定値は "DotfuscatorConfig.xml" です。
DotfuscatorGenerateConfigFileIfMissing
- "DotfuscatorConfigPath" に指定されたファイルが存在しない場合に、ビルド時に実行する内容を決定します。
- "true" の場合は、Dotfuscator により、関連する MSBuild プロパティを使って、パス "DotfuscatorConfigPath" に新しい構成ファイルが生成されます。
- "false" の場合は、Dotfuscator でこのビルドが失敗します。
- このプロパティは、Dotfuscator の MSBuild ターゲットがインポートされるプロジェクト ファイルで利用できます。
- このプロパティの既定値は "true" です。
- "DotfuscatorConfigPath" に指定されたファイルが存在しない場合に、ビルド時に実行する内容を決定します。
DotfuscatorAndroidSigningCertFingerprint
- Xamarin Android アプリケーションへの署名に使用する証明書の SHA-1 フィンガープリントを指定します。鍵のローテーションを使用しており、アプリケーションが Android Pie(以上)を必要とする場合は、その鍵のローテーションでは最後の別名を使用します。それ以外の場合は、鍵のローテーションでは最初の別名を提供する必要があります。
- Xamarin Android アプリケーションに改ざんチェックを差し込む場合にのみ必要です。
- このプロパティは、Dotfuscator の MSBuild ターゲットがインポートされる Xamarin.Android プロジェクト ファイルで利用できます。
- 既定では、このプロパティは設定されません。
-
- Dotfuscator ライセンス文字列を指定してアクティブ化し、この Dotfuscator 実行用に使用します。 通常、これはフローティング ライセンスで行われます。
- また、別のライセンスが環境変数またはライセンス ファイルで指定されている場合でも、このプロパティの値が使用されます。
- このプロパティは、Dotfuscator の MSBuild ターゲットがインポートされるプロジェクト ファイルで利用できます。
- 既定では、このプロパティは設定されません。
-
- Dotfuscator が、現在のプロジェクトを参照する別のプロジェクトに統合される場合、現在のプロジェクトのアセンブリが Dotfuscator によって保護されるかどうかを指定します。 詳細については、保護するアセンブリの制御を参照してください。
- このプロパティは、Dotfuscator の MSBuild ターゲットがインポートされるプロジェクトによって、直接的または間接的に参照されるプロジェクト ファイルで利用できます。
- このプロパティは、Dotfuscator の MSBuild ターゲットがインポートされるプロジェクトでは利用できません。
- このプロパティの既定値は
true
です。
利用可能な項目メタデータ
Dotfuscator の MSBuild ターゲットによって認識されるメタデータは次のとおりです。
- DotfuscatorIncludeAsInput
- Dotfuscator への入力として、外部参照のアセンブリを含める必要があるかどうかを指定します。 詳細については、保護するアセンブリの制御を参照してください。
- このメタデータは、Dotfuscator の MSBuild ターゲットがインポートされるプロジェクトなど、ソリューション内のすべてのプロジェクト ファルの
Reference
項目で利用できます。 Dotfuscator はProjectReference
またはPackageReference
項目に設定されるとエラーになります。この設定はそのような種類の参照に対してサポートされていないからです。 - このメタデータの既定値は
false
です。
MSBuild タスク リファレンス
Dotfuscator は、次の 2 つのタスク ライブラリを使って MSBuild インターフェイスを提供します。
従来のライブラリ:
legacy/PreEmptive.Dotfuscator.Tasks.dll
最新のライブラリ:
PreEmptive.Dotfuscator.Tasks.dll
この 2 つのライブラリには、同じタスク定義が含まれていますが、MSBuild のフレーバーとバージョンが異なるターゲット セットが含まれています。 次の表では、それぞれのバージョンをサポートする MSBuild のインストレーションをまとめています。
MSBuild フレーバー | MSBuild バージョン | 従来のライブラリ | 最新のライブラリ |
---|---|---|---|
.NET Framework | 4 - 14 | ✅ | ❌ |
.NET Framework | 15 + | ✅ | ✅ |
.NET Core | 16 + | ❌ | ✅ |
Mono | 16 + | ❌ | ✅ |
Dotfuscate タスク
Dotfuscate タスクを使用して、MSBuild から Dotfuscator を実行することができます。 以下の表は、Dotfuscate タスクによって提供されるプロパティを示しています。
プロパティ | 型 | 方向 | 説明 |
---|---|---|---|
ConfigPath |
string |
入力 | 必須。Dotfuscator 構成へのパスを設定します。 |
DebugSymbols |
string[] |
出力 | 出力アセンブリに関連付けられている PDB ファイルを公開します。PreEmptive.Dotfuscator.targets ファイルは、このプロパティを DotfuscatedDebugSymbols という名前の出力項目として公開しています。 |
InputAssemblies |
ITaskItem[] |
入力 | 入力アセンブリを設定します。InputAssemblies に指定された入力は、Dotfuscator 構成に列挙されている入力とマージされます。 |
InputManagement |
string |
入力 | Dotfuscate タスクでの入力の使用方法を設定します。automatic を指定する場合は、Dotfuscator により、入力が InputAssemblies プロパティからのみ取得されて、構成内の対応する入力が更新されます。manual を指定するか、何も指定しない場合は、InputAssemblies に指定された入力と構成に指定された入力が Dotfuscator によりマージされます。 |
License |
string |
Input | Dotfuscator ライセンス文字列を指定してアクティブ化し、この Dotfuscator 実行用に使用します。通常、このプロパティはフローティング ライセンスに使用されます。別のライセンスが環境変数またはライセンス ファイルで指定されている場合でも、このプロパティの値が使用されます。 |
MappingFile |
string |
出力 | 名前変更の割り当てファイルを公開します。PreEmptive.Dotfuscator.targets ファイルは、このプロパティを DotfuscatorMappingFile という名前の出力項目として公開しています。 |
OutputAssemblies |
string[] |
出力 | 出力アセンブリを公開します。PreEmptive.Dotfuscator.targets ファイルは、このプロパティを DotfuscatedAssemblies という名前の出力項目として公開しています。 |
OutputDirectory |
string |
入力 | Dotfuscator が出力アセンブリを書き込むディレクトリを設定します。このディレクトリは、Dotfuscator 構成に指定された出力ディレクトリを上書きします。 |
Properties |
string |
入力 | ユーザー定義の外部プロパティを設定します。文字列は、名前と要素値をそれぞれプロパティ名と値に割り当てる XML 要素で構成される必要があります。 たとえば、次のようになります。 <Property1>Value1</Property1><Property2>2</Property2> XML 要素の使用によって、MSBuild プロジェクト ファイルで MSBuild プロパティのようにプロパティを直感的に定義できます。 <PropertyGroup> <MyDotfuscatorProperties> <Property1>Value1</Property1> <Property2>2</Property2> </MyDotfuscatorProperties> </PropertyGroup> その後、このプロパティに $(MyDotfuscatorProperties) を渡します。 |
ReportFiles |
string[] |
出力 | HTML 形式の名前の変更レポートや除去レポートなどのレポート ファイルを公開します。 |
SatelliteAssemblies |
string[] |
出力 | 出力アセンブリに関連付けられているサテライト アセンブリを公開します。PreEmptive.Dotfuscator.targets ファイルは、このプロパティを DotfuscatedSatelliteAssemblies という名前の出力項目として公開しています。 |