PreEmptive がプライベートで配布する NuGet パッケージを使用して、Dotfuscator Professional をインストールすることができます。 このインストール方法によって、macOS および Linux 開発環境で Dotfuscator を実行することができます。 このインストール方法は Windows 開発環境でも使用できますが、通常は Windows インストーラーの使用をお勧めします。
ビルド エージェントもインストールに NuGet パッケージを使用することができます。詳細については、ビルド エージェントを参照してください。
NuGet パッケージについて
NuGet を使用して nuget.org からサードパーティのライブラリをプロジェクトに追加することには慣れているかもしれませんが、Dotfuscator NuGet パッケージはまったく異なる動作をします。
- このパッケージは、一般的なプログラミング用にライブラリを公開していません。 代わりに、このパッケージにはビルド時に独立したツールとして使用できる Dotfuscator のさまざまなコンポーネントが含まれています。
- プロジェクトに Dotfuscator NuGet パッケージへの参照を追加しません。 代わりに、パッケージをディレクトリに直接インストールし、そのディレクトリに抽出されたコンポーネントをビルドに使用させます。
- このパッケージは、パブリック nuget.org フィードでは利用できません。 代わりに、パッケージは PreEmptive からプライベートで配布され、組織内のプライベート フィードでホストされる必要があります。
このパッケージ ID は PreEmptive.Protection.Dotfuscator.Pro です (Dotfuscator Professional 評価版を使用しているお客様の場合は、この ID の最後に .Eval を追加してください)。
このページでは、Dotfuscator 自体を含むプライベート NuGet パッケージについて説明します。 チェック属性を含む従来の NuGet パッケージもあり、nuget.org から入手できます。 プロジェクトでこの NuGet パッケージを参照し、提供された属性を使用してコードにアノテーションを付けることができます。 Dotfuscator は実行時に、コンパイルされたコード内のこれらの属性を認識し、適宜チェックを差し込みます。
システム要件
NuGet パッケージを使用する Dotfuscator をインストールするには、NuGet パッケージをローカル ディレクトリにインストールする方法が必要になります。 最も簡単な方法は NuGet コマンド ライン インターフェイス(nuget.exe)を使用することですが、別の NuGet インターフェイスや、ZIP ファイルを抽出できるツールであればどれでも使用できます。 詳細については、インストール手順を参照してください。
パッケージ自体には 2 つのコンポーネント セットがあり、これらは 2 つのサブディレクトリに分かれています。 各コンポーネント セットには個別のシステム要件があります。
-
tools/msbuilddirには、Dotfuscator の MSBuild コンポーネントが含まれています。 これらのコンポーネントは、ほとんどの .NET プロジェクトの通常のビルド処理に統合されるため、ほとんどの開発者が使用する必要があります。 要件はこちらで読むことができます。 -
tools/programdir/netcoreには、.NET 6 バージョンのコマンド ライン インターフェイスが含まれています。 要件はこちらで読むことができます。
MSBuild のシステム要件
NuGet パッケージによってインストールされた MSBuild コンポーネントを実行するための要件は、次のとおりです。
-
MSBuild - 以下のいずれか:
- MSBuild(.NET Framework):4.0 以降。.NET Framework 4.7.2.1 以降で実行
- MSBuild(.NET Core):16.0 以降。.NET 6(バージョン 6.0 以降)ランタイムがインストール済み
- MSBuild(Mono):16.0 以降。Mono 6.0 以降で実行
MSBuild コンポーネントは、NuGet パッケージを介してインストールされた場合には、Windows、macOS、および Linux で実行されるビルドで使用することができます。 ただし、.pdb ファイルの生成など特定の機能には、Windows でのみ使用できる完全な .NET Framework SDK(バージョン 1.1 以降)が必要です。
サポートされている開発ツール
次の表は、NuGet パッケージを使用した場合に Dotfuscator がサポートする開発ツールを示しています。
| 開発ツール | サポートされているバージョン | 統合機能 |
| Visual Studio(Windows 版) | 2012 以降。 Community、Professional、および Enterprise がサポートされます。 |
Dotfuscator を .NET Framework、.NET 5、.NET Core、.NET Standard、Xamarin および MAUI 用のプロジェクトに統合することができます。Dotfuscator は、Visual Studio IDE や、msbuild および dotnet コマンド ライン ツールから開始するビルド時に実行されます。Visual Studio(VS 2017 以降での .NET ワークロードを使用)をインストールすると、.NET ランタイムおよび .NET SDK の要件も満たします。 |
| Visual Studio(Mac 版) | 2019 以降。 | Dotfuscator を .NET 5、.NET .NET Core、.NET Standard、Xamarin、MAUI および Mono 用のプロジェクトに統合することができます。Dotfuscator は、Visual Studio for Mac IDE から開始するビルド時、または Visual Studio for Mac でインストールされるコマンド ライン ツール msbuild や dotnet から開始するビルド時に実行されます。 |
| Visual Studio Code | すべてのバージョン | Dotfuscator を .NET ベースのプロジェクトに統合することができます。Dotfuscator は、サポートされる msbuild および dotnet ツールを呼び出すビルド タスクによってトリガーされるビルド時に実行されます。Visual Studio Code ではこれらのツールが含まれていません。SDK またはその他の IDE からインストールします。 |
| .NET Framework ランタイム | 4.0 以降。 | Dotfuscator を .NET Framework、および .NET Standard 用のプロジェクトに統合することができます。Dotfuscator は、Windows でのみ、.NET Framework の msbuild コマンド ライン ツールから開始するビルド時に実行されます。 |
| .NET Core SDK | 2.1 以降(最新のパッチ バージョン) | Dotfuscator を .NET Core、および .NET Standard 用のプロジェクトに統合することができます。Dotfuscator は、Windows、macOS、および Linux で、.NET Core の dotnet コマンド ライン ツールから開始するビルド時に実行されます。 |
| Mono SDK | 6.0 以降 | Dotfuscator を Mono、および .NET Standard 用のプロジェクトに統合することができます。Dotfuscator は、Windows、macOS、および Linux で、Mono の msbuild コマンド ライン ツールから開始するビルド時に実行されます。 |
コマンド ライン インターフェイスのシステム要件
NuGet パッケージによってインストールされた コマンド ライン インターフェイスを実行するための要件は、次のとおりです。
-
.NET ランタイム:.NET 6 以降
- メモ:.NET 6 ランタイムの 6.0.0 以降がインストールされている必要があります。 .NET が使用するランタイムの選択方法の詳細については、こちらを参照してください。 この制限は、処理済みのアプリケーションやインストール済みの SDK で使用されるバージョンには適用されません。
コマンド ライン インターフェイスは、NuGet パッケージを介してインストールされた場合には、Windows、macOS、および Linux で実行することができます。 ただし、.pdb ファイルの生成など特定の機能には、Windows でのみ使用できる完全な .NET Framework SDK(バージョン 1.1 以降)が必要です。
インストール手順
組織によっては、Dotfuscator NuGet パッケージを既に内部でホストしている可能性があります。そうであれば、パッケージがホストされている NuGet フィード URL を書き留めておきます。
そうでない場合は、次の操作を行います。
- NuGet パッケージを開発用コンピューターにダウンロードします。Dotfuscator のダウンロード用 Web ページで、Dotfuscator Professional の NuGet パッケージをダウンロードします。
- ダウンロードした
.nupkgを新しいディレクトリにコピーします。 - このディレクトリのパスを NuGet フィード URL として書き留めておきます。
NuGet パッケージをホストするか、またはダウンロードしたら、開発用コンピューターにそれをプロビジョニングできます。 以下のタブに示すように、これを行う方法は複数あります。
NuGet コマンド ライン インターフェイス(CLI)で install コマンドを使用して、Dotfuscator をプロビジョニングすることができます。 この CLI は、Windows や Mono で実行するのに適した nuget.exe としてダウンロードできます。 お使いのコンピューターが macOS を実行しており、Visual Studio for Mac がインストールされているのであれば、NuGet CLI は /Library/Frameworks/Mono.framework/Commands/nuget に既にあります。
Dotfuscator をプロビジョニングするコマンドの例を次に示します。
nuget install PreEmptive.Protection.Dotfuscator.Pro[.Eval] -Version 7.2.1 -OutputDirectory "{out dir}" -ExcludeVersion -Source "{feed url}"
ここで、
-
[.Eval]は、Dotfuscator Professional の評価中である場合は.Evalになり、そうでない場合は空の文字列になります。 -
{out dir}は、Dotfuscator NuGet パッケージが抽出されるディレクトリです。 -
{feed url}は、以前に書き留めた NuGet フィード URL です。
これは、{out dir}/PreEmptive.Protection.Dotfuscator.Pro[.Eval] に Dotfuscator をインストールします。 次の一連の手順のために、このインストール ディレクトリを書き留めておきます。
NuGet パッケージ(.nupkg)ファイルは、実際には名前を変更した ZIP ファイルです。 .nupkg ファイルを .zip 拡張子の付いた新しい名前にコピーし、そのコピーを新しいディレクトリに解凍します。 (NuGet パッケージが組織内のアーティファクト リポジトリにホストされている場合は、リポジトリのドキュメントを参照して .nupkg ファイルをダウンロードしてください。)
パッケージを解凍したら、解凍されたコンテンツのディレクトリがインストール ディレクトリになります。
次の一連の手順のために、このインストール ディレクトリを書き留めておきます。
Dotfuscator NuGet パッケージを参照する、単純な .NET プロジェクトの "スタブ" を作成することができます。 その後、プロジェクトの "スタブ" で NuGet 復元コマンドを使用することでパッケージをプロビジョニングできます。
詳細については、「ビルド エージェント」ページの NuGet 復元を参照してください。
含まれているシェル スクリプトを呼び出す前に、それらを実行可能としてマークする必要があります。 これは通常、chmod +x を呼び出すことによって行い、引数としてスクリプトの場所を渡します。
プロビジョニング後、いくつかの環境固有の設定を設定する必要があります。 次の内容を含む .dotfuscator.user.props という名前のファイルをユーザー ディレクトリ(つまり、USERPROFILE または HOME 環境変数にあるディレクトリ)に作成します。
<!-- これは Dotfuscator の MSBuild コンポーネントを使用する、プロジェクト用の MSBuild プロパティ ファイルです。
詳細については、<https://www.preemptive.com/dotfuscator/pro/userguide/ja/interfaces_msbuild.html#user> を参照してください。
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- NuGet パッケージを使用して Dotfuscator の MSBuild コンポーネントがインストールされるパス -->
<DotfuscatorMSBuildDir>{install dir}/tools/msbuilddir</DotfuscatorMSBuildDir>
<!-- Dotfuscator のライセンス文字列。 -->
<DotfuscatorLicense>{license string}</DotfuscatorLicense>
</PropertyGroup>
</Project>
ここで、
-
{install dir}は、Dotfuscator インストール ディレクトリの絶対パスです。 -
{license string}は、ライセンス文字列形式の Dotfuscator Professional ライセンス キーです。 これにより、Dotfuscator のビルド統合は、実行するたびに自動的に自身をアクティブ化するようになります。
これで、アプリケーションの保護手順に従って、Dotfuscator をビルドに統合することができます。
インストールされるコンポーネント
Dotfuscator の NuGet パッケージには以下のコンポーネントが含まれています。
| コンポーネント | インストール場所 |
|---|---|
| MSBuild ターゲット | {install dir}/tools/msbuilddir/PreEmptive.Dotfuscator.Common.targets |
| MSBuild タスク(最新) | {install dir}/tools/msbuilddir/PreEmptive.Dotfuscator.Tasks.dll |
| MSBuild タスク(従来) | {install dir}/tools/msbuilddir/legacy/PreEmptive.Dotfuscator.Tasks.dll |
| コマンド ライン インターフェイス |
{install dir}/tools/programdir/netcore/dotfuscator.dll(.NET Core アプリケーション) |
{install dir} は、インストール手順で示した Dotfuscator のインストール ディレクトリです。