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 der SignFile
-Aufgabe beschrieben.
Beachten Sie, dass SHA-256-Zertifikate nur auf Computern zulässig sind, auf denen .NET 4.5 und höher installiert ist.
Warnung
Ab Visual Studio 2013 Update 3 hat diese Aufgabe eine neue Signatur, mit der Sie die Zielframeworkversion für die Datei angeben können. Sie sollen die neue Signatur verwenden, wo immer möglich, weil der MSBuild-Prozess SHA-256-Hashes nur dann verwendet, wenn das Zielframework .NET 4.5 oder höher ist. Wenn das Zielframework .NET 4.0 oder älter ist, wird der SHA-256-Hash nicht verwendet.
Parameter | Beschreibung |
---|---|
CertificateThumbprint |
Erforderlicher String -Parameter.Gibt das zum Signieren zu verwendende Zertifikat an. Dieses Zertifikat muss sich im persönlichen Speicher des aktuellen Benutzers befinden. |
SigningTarget |
Erforderlicher ITaskItem -Parameter. Gibt die EXE- oder DLL-Dateien an, die mit dem Zertifikat signiert werden sollen. |
TimestampUrl |
Optionaler String -Parameter.Gibt die URL eines Zeitstempelservers an. |
TargetFrameworkVersion |
Die Version des .NET Framework, die für das Ziel verwendet wird. |
Hinweise
Zusätzlich zu den oben aufgeführten Parametern erbt diese Aufgabe Parameter von der Task-Klasse. Eine Liste mit diesen zusätzlichen Parametern und ihren Beschreibungen finden Sie unter Taskbasisklasse.
SignFile erfordert entweder Visual Studio oder ein Windows 8.1 SDK, das installiert werden soll, um das signtool.exe
Tool im Pfad zu finden. Es kann nicht in CI/CD-Szenarien verwendet werden, in denen nur Buildtools installiert sind.
Beispiel
Im folgenden Beispiel wird die SignFile
-Aufgabe zum Signieren der Dateien verwendet, die in der FilesToSign
-Elementauflistung mit dem in der CertificateThumbprint
-Eigenschaft angegebenen Zertifikat angegeben werden.
<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>
Hinweis
Der Zertifikatfingerabdruck ist der SHA1-Hash des Zertifikats. Im folgenden Beispiel wird eine Umgebungsvariable CERTIFICATE_THUMBPRINT
vorausgesetzt, die den Fingerabdruck enthält. Weitere Informationen finden Sie unter Abrufen des SHA-1-Hashs eines vertrauenswürdigen Stammzertifizierungsstellen-Zertifikats. Stellen Sie sicher, dass Sie das zusätzliche (3F) unsichtbare Zeichen beim Kopieren und Einfügen des Fingerabdrucks aus den Zertifikatdetails nicht kopieren, da dies verhindern kann, dass SignFile
das Zertifikat findet.