Share via


SignFile-Aufgabe

Signiert die angegebene Datei mit dem angegebenen Zertifikat.

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

Beispiel

Im folgenden Beispiel wird die SignFile-Aufgabe zum Signieren der Dateien verwendet, die in der FilesToSign-Elementauflistung mit dem in der Certificate-Eigenschaft angegebenen Zertifikat angegeben werden.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <FileToSign Include="File.exe" />
    </ItemGroup>
    <PropertyGroup>
        <Certificate>Cert.cer</Certificate>
    </PropertyGroup>
    <Target Name="Sign">
        <SignFile
            CertificateThumbprint="$(CertificateThumbprint)"
            SigningTarget="@(FileToSign)" 
            TargetFrameworkVersion="v4.5" />
    </Target>
</Project>

Hinweis

Der Zertifikatfingerabdruck ist der SHA1-Hash des Zertifikats.Weitere Informationen finden Sie unter Abrufen des SHA-1-Hashs eines vertrauenswürdigen Stammzertifizierungsstellenzertifikats.

Im folgenden Beispiel wird die Exec-Aufgabe zum Signieren der Dateien verwendet, die in der FilesToSign-Elementauflistung mit dem in der Certificate-Eigenschaft angegebenen Zertifikat angegeben werden. Damit können Sie Windows Installer-Dateien während des Buildprozesses signieren.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <FileToSign Include="File.msi" />
    </ItemGroup>
    <PropertyGroup>
        <Certificate>Cert.cer</Certificate>
    </PropertyGroup>
    <Target Name="Sign">
        <Exec Command="signtool.exe sign /f CertFile /p Password "@(FileToSign)" "/>
        <SignFile
            CertificateThumbprint="$(CertificateThumbprint)"
            SigningTarget="@(FileToSign)" 
            TargetFrameworkVersion="v4.0" />
    </Target>
</Project>

Siehe auch

Konzepte

MSBuild-Aufgaben

Weitere Ressourcen

Referenz zu MSBuild-Aufgaben