Visual Studio 2015 / Windows 10 SDK SignTool.exe错误?

时间:2015-10-17 23:23:53

标签: msbuild visual-studio-2015 windows-10

我有一个项目,我正在升级到Visual Studio 2015,但它仍然以.NET 4.5.1为目标。

每当$(WindowsSDKBinPath)设置为Windows 10 SDK" C:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ x86 \" signtool.exe以退出代码255退出,输出中断如下:

The following certificate was selected:
    Issued to: XXXX
    Issued by: VeriSign Class 3 Code Signing 2010 CA
    Expires:   Tue Apr 11 19:59:59 2017
    SHA1 hash: XXXX

Done Adding Additional Store

通常情况下会出现错误,如果出现错误但会发生错误,它会在此处切断并退出,退出代码为255.

如果$(WindowsSDKBinPath)设置为Windows 8.1 SDK" C:\ Program Files(x86)\ Windows Kits \ 8.1 \ bin \ x86 \"一切都很好。 SignTool.exe在没有任何问题的情况下对dll进行签名,并以正常的代码0退出。

任何人都可以帮我弄清楚如何使用更新的signtool或者至少知道它为什么不起作用?下面是我添加到我的csproj文件中的目标,以便在构建后进行签名。感谢。

<Target Name="AuthenticodeProjectSign" AfterTargets="AfterBuild">
  <PropertyGroup>
    <AuthenticodeTimestampServerUrl>http://timestamp.verisign.com/scripts/timstamp.dll</AuthenticodeTimestampServerUrl>
    <TargetAssembly>$(OutDir)$(TargetFileName)</TargetAssembly>
  </PropertyGroup>

  <Exec Command="&quot;$(WindowsSDKBinPath)signtool.exe&quot; sign /v /sha1 $(AuthenticodeCertificateSHA1) /t $(AuthenticodeTimestampServerUrl) &quot;$(TargetAssembly)&quot;" />
</Target>

2 个答案:

答案 0 :(得分:2)

signtool @ my Machine and on the buildserver is working. On VisualStudio 2015 and Windows 10 Enterprise 64bit, I had to add the ClickOnce Publishing Tools in VisualStudio Setup: Visual Studio 2015 Setup where you can add ClickOnce

制作div

在此之后,您可以在

中找到signtool.exe
  • c:\ Program Files(x86)\ Windows Kits \ 8.1 \ bin \ x64 \
  • c:\ Program Files(x86)\ Windows Kits \ 8.1 \ bin \ x86 \
  • c:\ Program Files(x86)\ Windows Kits \ 8.1 \ bin \ arm \

答案 1 :(得分:0)

我遇到了同样的问题:当使用:

时,signtool以退出代码255退出
declare
   v_scan_info dbms_comparison.comparison_type;
   v_compare_result boolean;
begin
   v_compare_result:= dbms_comparison.compare(
                         comparison_name => 'c2',
                         scan_info => v_scan_info,
                         MIN_VALUE=>'1000',
                         MAX_VALUE=>'5000',
                         perform_row_dif => TRUE);

    if v_compare_result = TRUE then
       dbms_output.put_line(a => 'Tables are synchronized!');
    else
       dbms_output.put_line(a => 'Warning! Data divergence found!'||chr(10)||
                            'Scan id differences: '||v_scan_info.scan_id);
    end if;
end;

但不知何故,它可以正常使用:

C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe