分享方式:


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 尋找憑證。

另請參閱