2013-02-21 97 views
2

我们使用Nant来使用Clickonce准备我们的软件的设置。嵌入清单后无法签署引导程序可执行文件(setup.exe)

使用signtool签署dll(s)和exe(s)。

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> 

没有错误,如果我不嵌入清单前的迹象,但它不能工作,因为任何文件需要改变后辞职。

我也尝试以下步骤:

  1. 符号的setup.exe
  2. 嵌入体现
  3. (在如上述该步骤中同样的错误)

是否有任何有辞职SETUP.EXE解决方案/这个问题的解决方法?

+0

似乎没有解决方法/解决方法 – Riken 2013-02-26 03:58:25

+0

您是否尝试使用法师重新签署清单? http://msdn.microsoft.com/en-us/library/xc3tc5xx.aspx – 2013-02-27 01:05:09

+0

是的,它给错误。我认为法师不能用来签署一个exe文件,它被用来签署应用程序清单和。应用程序文件 – Riken 2013-02-27 11:37:37

回答

1

我找不到引用来源,但前一段时间遇到类似问题,您无法签署先前已签名的setup.exe。您可以从头开始生成引导程序(see MSDN),应用您的清单,然后对其进行签名(第一次!),它应该可以工作。

+0

如果signtool实际告诉我们这将有所帮助!使用mt.exe对我来说是一个红鲱鱼 - 我签署了,运行mt.exe,意识到签名已经结束,再次签名,并提出了这个晦涩的错误消息。谢天谢地,你指出了理由,谢谢。 – GeoffM 2017-04-19 20:32:36

相关问题