2015-02-02 2 views
3

Я пытаюсь опубликовать надстройку VSTO для Word с помощью MSBuild на сервере сборки TeamCity без Visual Studio. Я сделал вещи из этих двух постов в блоге:Публикация надстройки VSTO с использованием MSBuild дает ошибку: задача «SignFile» неожиданно завершилась. System.ArgumentNullException: значение не может быть null

http://kentb.blogspot.com/2008/08/building-vsto-projects-without-visual.html http://www.wiktorzychla.com/2011/02/msb3147-could-not-find-required-file-on.html

Моего файл сборка мое Визуальное решение студии и моя цель «опубликовать». Публикация ClickOnce в Visual Studio 2013 на моей машине разработки отлично работает.

Но на сервере сборки, я получаю это:

[SignFile] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(612, 9): error MSB4018: The "SignFile" task failed unexpectedly. System.ArgumentNullException: Value cannot be null. Parameter name: path1 at System.IO.Path.Combine(String path1, String path2, String path3) at Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.GetPathToTool() at Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignPEFile(X509Certificate2 cert, Uri timestampUrl, String path, ResourceManager resources, Boolean useSha256) at Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignFile(X509Certificate2 cert, Uri timestampUrl, String path) at Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignFile(String certThumbprint, Uri timestampUrl, String path) at Microsoft.Build.Tasks.SignFile.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext()

Я понятия не имею, что это значит и как это исправить. Есть идеи?

ответ

4

Отвечая на мой собственный вопрос, поскольку это может помочь кому-то в будущем.

Я обнаружил, что это потому, что для этой версии задачи SignFile требуется файл signtool.exe, который я не установил. Я установил SDK Windows со всеми галочками, и он был установлен, и теперь моя задача публикации работает. Я не уверен, какой из вариантов он подходит, но я думаю, что это не тот .NET, который у меня уже был установлен.

+1

Согласно http://www.unawave.de/windows-7-tipps/4-gb-patch-selber-machen/makecert-und-signtool-besorgen.html в разделе «Разработка кода Windows» -> "Инструменты" – sebingel