SignFile 工作
使用指定的憑證簽署指定的檔案。 SignFile 僅適用於簽署 ClickOnce 檔案。 它是 signtool.exe
工具的包裝函式,不是一般用途的簽署工作。
參數
下表描述 SignFile
工作的參數。
請注意,只有 .NET 4.5 和更新版本的計算機上才允許SHA-256 憑證。
警告
從 Visual Studio 2013 Update 3 開始,此工作具有新的簽章,可讓您指定檔案的目標 Framework 版本。 建議您盡可能使用新的簽章,因為 MSBuild 進程只有在目標架構為 .NET 4.5 或更高版本時,才會使用 SHA-256 哈希。 如果目標 Framework 是 .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
工作,使用 CertificateThumbprint
屬性所指定的憑證簽署 FilesToSign
專案集合中指定的檔案。
<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
尋找憑證。