Path to SignTool.exe or “Windows Kits” directory when using Visual Studio 2012

前端 未结 7 1795
-上瘾入骨i
-上瘾入骨i 2021-01-30 09:04

How do you get the path to SignTool.exe when using Visual Studio 2012?

In Visual Studio 2010, you could use



        
7条回答
  •  清歌不尽
    2021-01-30 09:17

    I just ran into the same issue. Running the build from a Visual Studio 2012 Command Prompt worked, but it was failing in the IDE. Looking for a detailed or diagnostic log led me to What is the default location for MSBuild logs?, which told me that Visual Studio can't give the diagnostic information I really needed.

    Here's what I finally did to fix it.

    Open a normal Command Prompt (not the Visual Studio Command Prompt), and run msbuild from that by fully-qualifying the path to MSBuild (%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe). This finally gave me the same error message (error code 9009) that I had been receiving in Visual Studio 2012.

    Then, run the same build using "diagnostic" logging (which shows all property and item values) by appending the /v:diag switch.

    From this output, I learned that it does have some new properties that I could use to get the location of signtool.exe (excerpt below):

    windir = C:\Windows
    windows_tracing_flags = 3
    windows_tracing_logfile = C:\BVTBin\Tests\installpackage\csilogfile.log
    WindowsSDK80Path = C:\Program Files (x86)\Windows Kits\8.0\
    WIX = C:\Program Files (x86)\WiX Toolset v3.7\
    

    So, my solution to this problem was to add the following to my *.targets file:

    $(WindowsSDK80Path)bin\x86\signtool.exe
    $(WindowsSDK80Path)bin\x64\signtool.exe
    

    Hope this helps you, too. I included the preamble of how I got to this point because there are other properties available that may be better suited for your purposes.

提交回复
热议问题