Так что это странно, и я не уверен, как решить проблему.Я написал небольшую подпрограмму (.bat) для кодирования подписи сборки, когда я закончу сборку решения Visual Studio.Вот код BAT:
@echo off
echo.
echo Signing Dlls...
setlocal ENABLEEXTENSIONS
set DLL_PATH=%1
set PFX_PATH="C:\Users\ksobon\source\repos\HOK-Revit-Addins\_cert\archilabCertificate.pfx"
set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\HOK"
set VALUE_NAME="certificatePassword"
for /f "tokens=3" %%a in ('reg query %KEY_NAME% /V %VALUE_NAME% ^|findstr /ri "REG_SZ"') do set PFX_PASS=%%a
echo PFX File Path: %PFX_PATH%
echo PFX Password: %PFX_PASS%
echo DLL File Path: %DLL_PATH%
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86\signtool.exe" sign /f %PFX_PATH% /p %PFX_PASS% /t http://timestamp.comodoca.com/authenticode %DLL_PATH%
endlocal
Когда я вызываю его из PowerShell примерно так:
.\codeSigning.bat "C:\Users\ksobon\Desktop\Newtonsoft.Json.dll"
Я получаю правильный результат, и DLL подписывается.Там нет проблем.Тем не менее, когда я добавляю его в свою цель сборки Visual Studio следующим образом:
<Target Name="CopyFiles" AfterTargets="AfterBuild">
<Exec Command=""$(SolutionDir)..\_postBuild\codeSigning.bat" "$(TargetPath)""/>
</Target>
Это вызывает у меня следующую ошибку:
Идеи?