Freigeben über


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.

Siehe auch