SignFile-Aufgabe
Signiert die angegebene Datei mit dem angegebenen Zertifikat. SignFile ist nur für das Signieren von ClickOnce-Dateien vorgesehen. Es ist ein Wrapper für das signtool.exe
-Tool und ist keine allgemeine Signaturaufgabe.
Parameter
In der folgenden Tabelle werden die Parameter des SignFile
Vorgangs beschrieben.
Beachten Sie, dass SHA-256-Zertifikate nur auf Computern mit .NET 4.5 und höher zulässig sind.
Warnung
Ab Visual Studio 2013 Update 3 verfügt diese Aufgabe über eine neue Signatur, mit der Sie die Zielframeworkversion für die Datei angeben können. Sie werden empfohlen, nach Möglichkeit die neue Signatur zu verwenden, da der MSBuild-Prozess SHA-256-Hashes nur verwendet, wenn das Zielframework .NET 4.5 oder höher ist. Wenn das Zielframework .NET 4.0 oder darunter ist, wird der SHA-256-Hash nicht verwendet.
Parameter | Beschreibung |
---|---|
CertificateThumbprint |
Erforderlicher String -Parameter.Gibt das zertifikat an, das zum Signieren verwendet werden soll. Dieses Zertifikat muss sich im persönlichen Speicher des aktuellen Benutzers befinden. |
SigningTarget |
Erforderlicher ITaskItem-Parameter. Gibt die Dateien an, die mit dem Zertifikat signiert werden sollen, vom Typ .exe oder .dll. |
TimestampUrl |
Optionaler String -Parameter.Gibt die URL eines Zeitstempelservers an. |
TargetFrameworkVersion |
Die Version von .NET Framework, die für das Ziel verwendet wird. |
Bemerkungen
Zusätzlich zu den oben aufgeführten Parametern erbt diese Aufgabe Parameter von der Task-Klasse. Eine Liste dieser zusätzlichen Parameter und deren Beschreibungen finden Sie unter Task-Basisklasse.
SignFile erfordert, dass Visual Studio oder ein Windows 8.1 SDK installiert ist, um das signtool.exe
Tool auf dem Pfad zu finden. Sie kann nicht in CI/CD-Szenarien verwendet werden, in denen nur die Buildtools installiert sind.
Beispiel
Im folgenden Beispiel wird die aufgabe SignFile
verwendet, um die in der FilesToSign
Elementauflistung angegebenen Dateien mit dem von der CertificateThumbprint
-Eigenschaft angegebenen Zertifikat zu signieren.
<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>
Anmerkung
Der Zertifikatfingerabdruck ist der SHA-1-Hash des Zertifikats. Im folgenden Beispiel wird davon ausgegangen, dass eine Umgebungsvariable CERTIFICATE_THUMBPRINT
, die den Fingerabdruck enthält. Weitere Informationen finden Sie unter Abrufen des SHA-1-Hash eines vertrauenswürdigen Stammzertifizierungsstellenzertifikats. Wenn Sie den Fingerabdruck aus den Zertifikatdetails kopieren und einfügen, stellen Sie sicher, dass Sie das zusätzliche unsichtbare Zeichen (3F) nicht einschließen, was verhindern kann, dass SignFile
das Zertifikat finden.