2016-04-27 3 views
0

Я создал новый проект C#, используя шаблон Word 2013 и 2016 VSTO Add-in в Visual Studio 2015. Я не внес никаких изменений в код сгенерированного кода проекта, чтобы чтобы узнать, как он будет построен на моем сервере сборки TFS 2015 Build. Сборка производится следующее сообщение об ошибке:Задача «SetOffice2007AddInRegistration» неожиданно завершилась

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets (315, 0)
The "SetOffice2007AddInRegistration" task failed unexpectedly. System.Runtime.InteropServices.COMException (0x800703F0): An attempt was made to reference a token that does not exist. (Exception from HRESULT: 0x800703F0) at Microsoft.VisualStudio.Tools.Office.Runtime.Interop.VSTOEENativeMethods.GetVSTOEEHandle() at Microsoft.VisualStudio.Tools.Office.Runtime.Interop.VSTOEENativeMethods.GetSolutionMetadata(String solutionInfoString) at Microsoft.VisualStudio.Tools.Applications.OfficeSolutionMetadata..ctor(String manifestLocation) at Microsoft.VisualStudio.Tools.Office.Runtime.AddInRegistryKeyManager.RegisterAddIn(Uri manifestUri, String addInName, String officeApplication, String friendlyName, String description, Int32 loadBehavior, String compatibleFrameworkXML, Boolean runLocal) at Microsoft.VisualStudio.Tools.Office.BuildTasks.SetOffice2007AddInRegistration.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()

Build Service запускается как учетная запись домена, который является администратором, где установлен Build Service в Windows Server 2012. Visual Studio 2015 и Office 2016 установлены на этом Windows Server.

Когда я создаю проект в Visual Studio 2015 на моем локальном компьютере, у меня нет никаких ошибок. Пожалуйста, помогите, если у вас возникла такая же проблема в вашей работе. Спасибо.

ответ

1

Эта проблема не связана с TFS.

Но я нашел решение от Jens на this сайте, который должен помочь вам:

«

Согласно MSDN Library SetOffice2007AddInRegistration» Определяет задачу MSBuild, которая создает или удаляет ключи реестра, которые необходимы для запустите или удалите надстройку для системы Microsoft Office 2007 ». Итак, я проверил реестр и выяснил, что единственные записи, которые были все еще присутствуют, были под HKEY_CURRENT_USER \ Software \ Microsoft \ VSTO \ SolutionMetadata где VSTO кэширует метаданные для решений. выровняли все ключи и подразделы (ваши существующие решения все равно будут работать, это всего лишь кэшированные метаданные), и мое решение скомпилировано успешно.

"

+0

Спасибо, Cece, за ваш ответ. Я красная статья Йенса и сделала то, что он посоветовал, но это не сработало для меня. Я сделал это ** Я запустил Regedit на машине TFS Build Server в качестве учетной записи, которая запускает сборку **. Я удалил все ключи и вспомогательные ключи в папке HKEY_CURRENT_USER \ Software \ Microsoft \ VSTO \ SolutionMetadata. Затем я запустил сборку из Visual Studio и снова получил ту же ошибку. Есть предположения? – MBK

+0

Это сработало для меня. Благодарю. – wave5459

0

Как я провел значительный кусок моего времени, пытаясь решить эту ошибку и получить в никуда, я хотел бы поделиться своим опытом с другими людьми. У меня есть подозрение, что MSBuild имеет ошибку, когда он запускается для определений построения XAML проектов Office Addin.

Я создал новый проект Word 2016 Addin в Visual Studio 2015. Никакой пользовательский код. У проекта был только сгенерированный код. Visual Studio построил проект без ошибок . Я запустил сборку с помощью опции выбора параметра диагностики MSBuild.

После этого я запускаю программу MSBuild из командной строки с теми же параметрами, что и TFS Build Server. Единственное различие заключалось в том, что в диалоговом окне «Подробный лог» для создания подробного журнала. Я сравнил два журнала, созданных Visual Studio и MSBuild. Журнал MSBuild показал, что рабочий процесс никогда не попадал на этап отмены регистрации Addin. Фактически, он пытался зарегистрировать Addin без регистрации. Журнал Visual Studio показал, что Visual Studio не зарегистрировала Addin и зарегистрировала его после этого.

Изучая возможности TFS 2015, я узнал об агентах и ​​агентах сборки. Я понял, что вместо запуска MSBuild для определенных XAML построений, агенты сборки TFS 2015 используют Visual Studio для создания приложения. Итак, я настроил агент и пул агента на моем сервере сборки, и, вуаля, аддин был успешно создан!

Вывод: если у вас установлен XAML сборка для вашего проекта Addin, не используйте его в TFS 2015. Создайте новое определение сборки TFS, используя функции Pool Pool, представленные в TFS 2015. Это гарантирует, что ваша сборка будет выполнена на сервере сборки TFS точно так же, как на вашем ПК в среде Visual Studio.

Смежные вопросы