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.