Я только что столкнулся с той же проблемой. Запуск сборки из командной строки Visual Studio 2012 работал, но в среде IDE происходил сбой. Поиск подробного или диагностического журнала привел меня к Каково расположение по умолчанию для Журналы MSBuild?, которые сказали мне, что Visual Studio не может предоставить диагностическую информацию, которая мне действительно нужна.
Вот что я наконец сделал, чтобы исправить это.
Откройте обычную командную строку (не командную строку Visual Studio) и запустите из нее msbuild, указав полный путь к MSBuild (%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe). Это, наконец, дало мне то же сообщение об ошибке (код ошибки 9009), которое я получал в Visual Studio 2012.
Затем запустите ту же сборку, используя «диагностическую» регистрацию (которая показывает все значения свойств и элементов), добавив переключатель /v:diag.
Из этого вывода я узнал, что у него есть некоторые новые свойства, которые я могу использовать для получения местоположения signtool.exe (отрывок ниже):
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\
Итак, мое решение этой проблемы состояло в том, чтобы добавить в мой файл *.targets следующее:
<SignToolPath Condition=" Exists('$(WindowsSDK80Path)bin\x86\signtool.exe') and '$(SignToolPath)'=='' and '$(PROCESSOR_ARCHITECTURE)'=='x86' ">$(WindowsSDK80Path)bin\x86\signtool.exe</SignToolPath>
<SignToolPath Condition=" Exists('$(WindowsSDK80Path)bin\x64\signtool.exe') and '$(SignToolPath)'=='' and '$(PROCESSOR_ARCHITECTURE)'=='AMD64' ">$(WindowsSDK80Path)bin\x64\signtool.exe</SignToolPath>
Надеюсь, это поможет и вам. Я включил преамбулу того, как я пришел к этому моменту, потому что есть другие доступные свойства, которые могут лучше подходить для ваших целей.
person
M. Shawn Dillon
schedule
02.01.2013
FrameworkSdkDir
иFrameworkSdkRoot
отличаются не регистром, а содержанием. - person Edward Thomson   schedule 29.12.2012