我们正在使用Nant使用Clickonce准备我们的软件设置。
使用signtool对dll和exe进行签名。
signtool命令:signtool sign /f ${certFile} /p ${certFilePwd} {path of setup.exe}
使用Mt.exe将清单嵌入exe文件中。
Mt命令:mt -manifest {manifest file} -outputresource:{filepath};#1
我们有两个exe文件。一个是我们的app.exe,第二个是setup.exe(由clickonce创建的引导程序)
嵌入清单后签名时app.exe没有问题。
但是setup.exe 嵌入后]清单的签名出现以下错误:
SignTool Error: SignedCode::Sign returned error: 0x80070057. The parameter is incorrect.
清单文件包含:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">
<ms_asmv2:security>
<ms_asmv2:requestedPrivileges>
<ms_asmv2:requestedExecutionLevel level="asInvoker"
uiAccess="false"></ms_asmv2:requestedExecutionLevel>
</ms_asmv2:requestedPrivileges>
</ms_asmv2:security>
</ms_asmv2:trustInfo>
</assembly>
如果我在嵌入清单之前进行签名没有错误,但是由于更改后任何文件都需要签名,因此它无法工作。
我也尝试了以下步骤:
是否有解决此问题的方法/解决方法?
我们正在使用Nant使用Clickonce准备我们的软件设置。使用signtool对dll和exe进行签名。 signtool命令:signtool登录/ f $ {certFile} / p $ {certFilePwd} {setup.exe的路径} ...
我找不到要引用的来源,但前一阵子我遇到了类似的问题,您无法签署先前已签署的setup.exe。您可以从头开始生成引导程序(see MSDN),应用清单,然后对其进行签名(第一次!),它应该可以工作。