C# 如何在Azure DevOps中指定signtool.exe的位置?

C# 如何在Azure DevOps中指定signtool.exe的位置?,c#,azure-devops,msbuild,code-signing,signtool,C#,Azure Devops,Msbuild,Code Signing,Signtool,尝试使用Visual Studio Build任务对从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] …但我不知道如何告诉VS构建任务

尝试使用Visual Studio Build任务对从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]
…但我不知道如何告诉VS构建任务在那里查找它


我有没有办法通知构建任务正确的路径,或者有什么办法覆盖它?如果不是,我可能会考虑在每次运行时将SooScript复制到当前目录中,但这感觉像是一个脏的黑客。

< P>我通过使用PosithScript脚本检查本地构建路径中的SoistToo.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"
}
现在,至少MSBuild将找到该工具并能够运行它

# 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"
}