我们正在使用 Nant 准备使用 Clickonce 设置我们的软件。
使用 signtool 对 dll(s) 和 exe(s) 进行签名。
标志工具命令:signtool sign /f ${certFile} /p ${certFilePwd} {path of setup.exe}
使用Mt.exe将清单嵌入 exe 文件中。
山命令: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>
如果我在嵌入清单之前签名没有错误,但它不能工作,因为任何文件都需要在更改后辞职。
我还尝试了以下步骤:
- 登录 setup.exe
- 嵌入清单
- 退出 setup.exe(此步骤中的错误与上述相同)
有没有解决这个问题的方法/解决方法?