分享方式:


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

另請參閱