Dela via


SignFile-uppgift

Signerar den angivna filen med det angivna certifikatet. SignFile är endast avsett för signering av ClickOnce-filer. Det är en omslutning för verktyget signtool.exe och är inte en signeringsuppgift för generell användning.

Parametrar

I följande tabell beskrivs parametrarna för den SignFile aktiviteten.

Observera att SHA-256-certifikat endast tillåts på datorer som har .NET 4.5 och senare.

Varning

Från och med Visual Studio 2013 Update 3 har den här uppgiften en ny signatur som gör att du kan ange målramverksversionen för filen. Du uppmanas att använda den nya signaturen när det är möjligt, eftersom MSBuild-processen endast använder SHA-256-hashvärden när målramverket är .NET 4.5 eller senare. Om målramverket är .NET 4.0 eller lägre används inte SHA-256-hashen.

Parameter Beskrivning
CertificateThumbprint Obligatorisk String parameter.

Anger det certifikat som ska användas för signering. Det här certifikatet måste finnas i den aktuella användarens personliga arkiv.
SigningTarget Obligatorisk ITaskItem parameter.

Anger vilka filer som ska signeras med certifikatet, av typen .exe eller .dll.
TimestampUrl Valfri String parameter.

Anger URL:en för en tidsstämplingsserver.
TargetFrameworkVersion Den version av .NET Framework som används för målet.

Anmärkningar

Förutom de parametrar som anges ovan ärver den här aktiviteten parametrar från klassen Task. En lista över dessa ytterligare parametrar och deras beskrivningar finns i Aktivitetsbasklass.

SignFile kräver att antingen Visual Studio eller en Windows 8.1 SDK installeras för att hitta verktyget signtool.exe på sökvägen. Det kan inte användas i CI/CD-scenarier där endast byggverktygen är installerade.

Exempel

I följande exempel används uppgiften SignFile för att signera filerna som anges i den FilesToSign objektsamlingen med certifikatet som anges av egenskapen CertificateThumbprint.

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

Not

Certifikatets tumavtryck är SHA-1-hashen för certifikatet. Exemplet här förutsätter en miljövariabel CERTIFICATE_THUMBPRINT som innehåller tumavtrycket. Mer information finns i Hämta SHA-1-hash för ett betrott rotcertifikatutfärdarcertifikat. Om du kopierar och klistrar in tumavtrycket från certifikatinformationen kontrollerar du att du inte inkluderar det extra (3F) osynliga tecknet, vilket kan hindra SignFile från att hitta certifikatet.

Se även