VerifyFileHash タスク
ファイルが予想されるファイル ハッシュと一致することを確認します。 ハッシュが一致しない場合、タスクは失敗します。
このタスクは 15.8 で追加されましたが、16.0 より前の MSBuild バージョンで使用するには回避策が必要です。
タスク パラメーター
VerifyFileHash
タスクのパラメーターの説明を次の表に示します。
パラメーター | 説明 |
---|---|
File |
必須の String 型のパラメーターです。ハッシュ値を計算し、検証するファイル。 |
Hash |
必須の String 型のパラメーターです。予想されるファイル ハッシュ。 |
Algorithm |
省略可能な String 型のパラメーターです。アルゴリズム。 許可値: SHA256 、SHA384 、SHA512 。 既定値 = SHA256 。 |
HashEncoding |
省略可能な String 型のパラメーターです。生成されたハッシュに使用するエンコード。 既定値は hex です。 許可値 = hex 、base64 。 |
例
次の例では、VerifyFileHash
タスクを使用してそのチェックサムが検証されます。
<Project>
<Target Name="VerifyHash">
<GetFileHash Files="$(MSBuildProjectFullPath)">
<Output
TaskParameter="Items"
ItemName="FilesWithHashes" />
</GetFileHash>
<Message Importance="High"
Text="@(FilesWithHashes->'%(Identity): %(FileHash)')" />
<VerifyFileHash File="$(MSBuildThisFileFullPath)"
Hash="$(ExpectedHash)" />
</Target>
</Project>
MSBuild 16.5 以降では、ハッシュが一致しないときにビルドが失敗しないようにする場合 (たとえば、制御フローの条件としてハッシュ比較を使用している場合)、次のコードを使用して警告をメッセージにダウングレードできます。
<PropertyGroup>
<MSBuildWarningsAsMessages>$(MSBuildWarningsAsMessages);MSB3952</MSBuildWarningsAsMessages>
</PropertyGroup>
<Target Name="DemoVerifyCheck">
<VerifyFileHash File="$(MSBuildThisFileFullPath)"
Hash="1"
ContinueOnError="WarnAndContinue" />
<PropertyGroup>
<HashMatched>$(MSBuildLastTaskResult)</HashMatched>
</PropertyGroup>
<Message Condition=" '$(HashMatched)' != 'true'"
Text="The hash didn't match" />
<Message Condition=" '$(HashMatched)' == 'true'"
Text="The hash did match" />
</Target>