如何在托管环境中进行代码签名和 运行 安装程序?

How to code sign and run installer on hosted environment?

我有一个 VS2019 项目,该项目使用 Windows 10 Kit 的 SignTool.exe 进行代码签名,并使用 Inno Setup 构建安装程序。这是项目 PostBuildEvent 的一部分。我如何在托管的 DevOps 构建管道中正确执行此操作?

工程文件PostBuildEvent如下:

<PropertyGroup>
    <PostBuildEvent>
        if "$(ConfigurationName)" == "Release" "$(ProgramFiles)\Windows Kits\bin\x64\SignTool.exe" sign /n "SomeCompanyName" /tr http://timestamp.comodoca.com/authenticode /td SHA256 $(TargetDir)Test1.*.dll $(TargetDir)Test1.exe
        if "$(ConfigurationName)" == "Release" "%25ProgramFiles(x86)%25\Inno Setup 5\iscc.exe" "$(SolutionDir)Setup\Setup.iss"
    </PostBuildEvent>
</PropertyGroup>

我有一个使用 "Hosted Windows 2019 with VS2019" 代理池的 DevOps 构建管道,它有 "Microsoft.VisualStudio.Component.Windows10SDK.17763"。

我可以创建一个命令行任务来使用更新后的路径调用 SignTool.exe。如何处理 Inno setup 安装程序?

How do I handle the Inno setup installer?

您可以在托管代理上构建期间通过 Chocolatey 安装 Inno Setup。

VS2019 image 上安装了 Chocolatey 0.10.11,如果您可以在那里找到您的工具包,这应该是在构建过程中安装工具的好方法。

此外,Inno Setup 支持通过 Chocolatey 安装。您可以在包页面 here 上看到它。页面顶部的绿色灯泡表示此软件包版本已通过 Chocolatey 拥有的自动化流程正确安装,验证软件包是否已正确安装。

您可以在 Github 上查看票 Add Inno Setup to Visual Studio 2017 Images 了解更多详情。

希望对您有所帮助。