2016-04-27 173 views
0

我已在Visual Studio 2015中使用Word 2013和2016 VSTO插件模板创建了一个新的C#项目。我没有按顺序对自动生成的项目代码进行任何更改看看它将如何构建在我的TFS 2015 Build Server上。构建产生以下错误:“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()

编译服务运行作为是Windows Server 2012中安装了构建服务的管理员的域帐户。 Visual Studio 2015和Office 2016安装在此Windows Server上。

当我在本地pc上在Visual Studio 2015中生成项目时,我根本没有任何错误。 请帮助,如果你在工作中遇到同样的问题。谢谢。

回答

1

此问题与TFS不相关。

但是我发现从延在this网站解决方案,它可以帮助你:

根据MSDN库SetOffice2007AddInRegistration”定义,创建或删除所需要的注册表项的MSBuild任务运行或卸载2007 Microsoft Office系统的加载项“。因此,我检查了注册表,发现仍然存在的唯一条目是HKEY_CURRENT_USER \ Software \ Microsoft \ VSTO \ SolutionMetadata其中VSTO缓存解决方案的元数据选中所有的键和子键(您现有的解决方案仍然可以工作,它只是缓存的元数据),我的解决方案已成功编译。

+0

谢谢您,Cece,您的回应。我红色的延斯文章,并做了他的建议,但它不适合我。我所做的是**我在TFS Build Server机器上运行Regedit作为运行构建**的帐户。我删除了HKEY_CURRENT_USER \ Software \ Microsoft \ VSTO \ SolutionMetadata文件夹中的所有密钥和子密钥。然后,我从Visual Studio运行构建,并再次出现相同的错误。有什么想法吗? – MBK

+0

这对我有效。谢谢。 – wave5459

0

正如我已经花了我的时间显著块试图解决这个错误并获得走不通,我想和大家分享我与其他人的经验。我有一个怀疑,MSBuild的有当一个bug为Office Addin项目的XAML构建定义运行。

我在Visual Studio 2015中创建了一个全新的Word 2016 Addin项目。没有自定义代码。该项目只有自动生成的代码。Visual Studio构建的项目没有错误。我选择了MSBuild诊断输出详细选项运行构建。

之后,我使用与TFS Build Server运行构建相同的参数从命令行运行MSBuild程序。唯一的区别是用于创建详细日志的诊断详细日志选项。我比较了由Visual Studio和MSBuild生成的两个日志。 MSBuild日志表明工作流永远不会注销Addin。实际上,它试图在不注销的情况下注册Addin。 Visual Studio日志显示Visual Studio构建未注册Addin并在成功注册之后。

学习TFS 2015功能,我了解了代理池和构建代理。我意识到,不是为XAML定义的构建运行MSBuild,而是使用Visual Studio构建应用程序。因此,我在构建服务器上设置了代理池和构建代理,瞧,Addin已经成功构建!

结论是,如果您的XAML为您的Addin项目定义了构建,请不要在TFS 2015中使用它。使用TFS 2015中提供的代理池功能创建新的TFS构建定义。这将保证您的构建将完成在TFS构建服务器上就像在Visual Studio环境中的PC上一样。

相关问题