TFS 2013在构建/部署期间引发Lib2GitSharp错误(间歇性)

有一段时间了,我一直遇到Team Foundation Server构建/部署过程的问题,间歇性地抛出以下错误:

Unhandled Exception: System.TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception. ---> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) at LibGit2Sharp.Core.NativeMethods.git_threads_init() at LibGit2Sharp.Core.NativeMethods.LibraryLifetimeObject..ctor() at LibGit2Sharp.Core.NativeMethods..cctor() --- End of inner exception stack trace --- at LibGit2Sharp.Core.NativeMethods.RemoveHandle() at LibGit2Sharp.Core.NativeMethods.LibraryLifetimeObject.Finalize() Exception Message: MSBuild error 255 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException) Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation) 

这个问题非常间歇性,可以通过简单地重试构建来绕过它。 有没有其他人遇到这个? 有解决方案?

我知道答案有点晚,但它可能对其他人有所帮助

巴克霍奇斯回答

在使用Manoj和客户支持进行调试之后,我们现在已经深入到了这个问题的最底层。 在使用Azure SDK 2.5或更早版本时,它会影响Azure部署持续交付的门控签名,作为构建过程的一部分。 解决方法是将/ p:GenerateBuildInfoConfigFile = false添加到构建定义中的msbuild参数。 我们正在努力更新生产中的构建VM,但这需要24-48小时才能传播到所有构建池。

添加msbuild参数

你可能想在这里阅读更多内容https://social.msdn.microsoft.com/Forums/en-US/5a0d1950-1367-41a6-9171-676a0d0e93c1/tfs-online-getted-checkin-build-failures-vs -online-TFS-在线团队需要对查找到-呢?论坛= TFService

基于评论的替代解决方案

如果您的构建服务器上安装了VS,请确保已打开并获得许可。 通过@Phill

对我来说奇怪的是,我在构建日志中遇到了同样的错误:

C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ BuildInfo \ Microsoft.VisualStudio.ReleaseManagement.BuildInfo.targets(147):’LibGit2Sharp.Core.NativeMethods’的类型初始化程序引发了exception。 未处理的exception:System.TypeInitializationException:’LibGit2Sharp.Core.NativeMethods’的类型初始值设定项引发exception。 —> System.BadImageFormatException:尝试加载格式不正确的程序。 (HRESULTexception:0x8007000B)

我能够简单地重建RETRY,并且在第二次尝试时没有失败。 所以对我来说这是一个短暂的构建问题。

虽然很晚才到派对,最近遇到了这个错误,当标记为该解决方案的解决方案时,在构建服务器上将Visual Studio 2012升级到Visual Studio 2015 Update 3时修复了错误(并删除了交换机)正在运行TFS 2015 Update 3。

在我将TFS 2013 XAML构建机器升级到TFS 2015之后,我点击了这个。

我还更改了TFS 2015 XAML构建用于运行构建(服务)的用户。

修复:

我必须以新用户身份登录TFS 2015 XAML构建计算机并启动VS(我使用的是VS2013)。

它是第一次启动问题和设置。

在此之后我仍然看到了Lib2GitSharp错误问题。

然后我还将VS(在TFS 2015 XAML构建机器上)记录到有效的VS帐户中。

我从未见过Lib2GitSharp错误,因为我从未使用/ p:GenerateBuildInfoConfigFile = false选项。

我通过将构建帐户添加到构建计算机上的本地管理员组来解决此错误。