SignFile-taak
Ondertekent het opgegeven bestand met het opgegeven certificaat. SignFile is alleen bedoeld voor het ondertekenen van ClickOnce-bestanden. Het is een wrapper voor het hulpprogramma signtool.exe
en is geen algemene ondertekeningstaak.
Parameters
In de volgende tabel worden de parameters van de SignFile
taak beschreven.
Sha-256-certificaten zijn alleen toegestaan op computers met .NET 4.5 en hoger.
Waarschuwing
Vanaf Visual Studio 2013 Update 3 heeft deze taak een nieuwe handtekening waarmee u de doelframeworkversie voor het bestand kunt opgeven. U wordt aangeraden de nieuwe handtekening waar mogelijk te gebruiken, omdat het MSBuild-proces alleen SHA-256 hashes gebruikt wanneer het doelframework .NET 4.5 of hoger is. Als het doelframework .NET 4.0 of lager is, wordt de SHA-256-hash niet gebruikt.
Parameter | Beschrijving |
---|---|
CertificateThumbprint |
Vereiste String parameter.Hiermee geeft u het certificaat op dat moet worden gebruikt voor ondertekening. Dit certificaat moet zich in het persoonlijke archief van de huidige gebruiker bevinden. |
SigningTarget |
Vereiste ITaskItem parameter. Hiermee geeft u de bestanden te ondertekenen met het certificaat, van het type .exe of .dll. |
TimestampUrl |
Optionele String parameter.Hiermee geeft u de URL van een tijdstempelserver. |
TargetFrameworkVersion |
De versie van .NET Framework die wordt gebruikt voor het doel. |
Opmerkingen
Naast de bovenstaande parameters neemt deze taak parameters over van de Task-klasse. Zie Task base-klassevoor een lijst met deze aanvullende parameters en de bijbehorende beschrijvingen.
SignFile vereist dat Visual Studio of een Windows 8.1 SDK is geïnstalleerd om het hulpprogramma signtool.exe
op het pad te vinden. Het kan niet worden gebruikt in CI/CD-scenario's waarbij alleen de buildhulpprogramma's zijn geïnstalleerd.
Voorbeeld
In het volgende voorbeeld wordt de SignFile
taak gebruikt om de bestanden te ondertekenen die zijn opgegeven in de FilesToSign
itemverzameling met het certificaat dat is opgegeven door de eigenschap CertificateThumbprint
.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<FileToSign Include="File.exe" />
</ItemGroup>
<PropertyGroup>
<Certificate>Cert.cer</Certificate>
</PropertyGroup>
<Target Name="Sign">
<SignFile
CertificateThumbprint="$(CERTIFICATE_THUMBPRINT)"
SigningTarget="@(FileToSign)"
TargetFrameworkVersion="v4.5" />
</Target>
</Project>
Notitie
De vingerafdruk van het certificaat is de SHA-1-hash van het certificaat. In het voorbeeld wordt ervan uitgegaan dat een omgevingsvariabele CERTIFICATE_THUMBPRINT
die de vingerafdruk bevat. Zie De SHA-1-hash van een vertrouwd basis-CA-certificaat verkrijgenvoor meer informatie. Als u de vingerafdruk van de certificaatgegevens kopieert en plakt, moet u ervoor zorgen dat u het extra (3F) niet-zichtbare teken niet opneemt, waardoor SignFile
het certificaat mogelijk niet kan vinden.