SignFile 工作
使用指定的憑證簽署指定的檔案。 SignFile 僅適用於 ClickOnce 檔案的簽署。 其是 signtool.exe
工具的包裝函式,不是一般用途的簽署工作。
參數
下表說明 SignFile
工作的參數。
請注意 SHA-256 憑證只在具有 .NET 4.5 及更高版本的電腦上才允許。
警告
從 Visual Studio 2013 Update 3 開始,這個工作有新的簽章,可讓您指定檔案的目標架構版本。 我們鼓勵您儘可能地使用新的簽章,因為只有當目標架構是 .NET 4.5 或更高版本時,MSBuild 程序才會使用 SHA-256 雜湊。 如果目標架構是 .NET 4.0 或更低版本,將不會使用 SHA-256 雜湊。
參數 | 描述 |
---|---|
CertificateThumbprint |
必要的 String 參數。指定簽署要使用的憑證。 此憑證必須位於目前使用者的個人存放區。 |
SigningTarget |
必要的 ITaskItem 參數。 指定要使用 .exe 或 .dll 類型的憑證簽署的檔案。 |
TimestampUrl |
選擇性的 String 參數。指定時間戳記伺服器的 URL。 |
TargetFrameworkVersion |
對目標使用的 .NET Framework 版本。 |
備註
除了上述所列的參數,這項工作也會從 Task 類別繼承參數。 如需這些其他參數的清單及其說明,請參閱 Task 基底類別。
SignFile 需要安裝 Visual Studio 或 Windows 8.1 SDK,才能在路徑上尋找 signtool.exe
工具。 其不能用於僅安裝建置工具的 CI/CD 情節中。
範例
下列範例使用 SignFile
工作來簽署 FilesToSign
項目集合中指定的檔案,並使用 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>
注意
憑證指紋是憑證的 SHA-1 雜湊。 這裡的範例假設環境變數 CERTIFICATE_THUMBPRINT
包含指紋。 如需詳細資訊,請參閱取得受信任的根 CA 憑證的 SHA-1 雜湊。 如果您從憑證詳細資料複製並貼上指紋,請確定您未包含額外的 (3F) 不可見字元,這可能會導致 SignFile
找不到憑證。