Kja*_*tan 6 c# msbuild code-signing signtool azure-devops
尝试使用Visual Studio 生成任务对从 Azure Devops 编译和发布的应用程序进行签名时,我收到以下错误消息:
An error occurred while signing: SignTool.exe was not found at path
e:\<my app name>\(...)\signtool.exe. [e:\<my-project>\24\s\(...)\MyProjecName.csproj]
Run Code Online (Sandbox Code Playgroud)
我检查了一下,发现SignTool.exe在以下位置找到了......
C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool
Run Code Online (Sandbox Code Playgroud)
...但我不知道如何告诉 VS Build 任务在那里寻找它。
我有什么方法可以告知构建任务正确的路径,或者有什么方法可以覆盖它?如果没有,我可能会考虑在每次运行时将 SignTool 复制到当前目录中,但这感觉像是一个肮脏的黑客行为。
我最终通过使用 Powershell 脚本检查本地构建路径中是否存在 SignTool.exe 来解决此问题,如果不存在则将其复制:
# Since MSBuild can't seem to access SignTool.exe from it's existing
# path, make a local copy (if none already exists):
$buildPath = "$(Build.Repository.LocalPath)"
$projPath = "$buildPath\MyProjectNameHere"
$pathToCheck = "$projPath\SignTool.exe"
$signToolPath = "C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\SignTool.exe"
if(-not (test-path "$pathToCheck")){
write-host "Copying SignTool to $pathToCheck"
copy "$signToolPath" "$projPath"
}
Run Code Online (Sandbox Code Playgroud)
现在至少 MSBuild 会找到该工具并能够运行它。
| 归档时间: |
|
| 查看次数: |
2410 次 |
| 最近记录: |