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 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.

Siehe auch