TFS 2013 在 Build/Deploy 期间抛出 Lib2GitSharp 错误(间歇性)
TFS 2013 Throws Lib2GitSharp Error During Build/Deploy (Intermittent)
一段时间以来,我一直遇到 Team Foundation Server build/deploy 进程间歇性地抛出以下错误的问题:
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)
此问题间歇性很强,只需重试构建即可绕过。还有其他人 运行 参与其中吗?有什么解决办法吗?
我知道回答有点晚了,但它可能会对其他人有所帮助
Buck Hodges 的回答
在与 Manoj 和客户支持一起调试后,我们现在已经查明了这个问题的真相。当使用 Azure SDK 2.5 或更早版本时,它会影响作为构建过程一部分的 Azure 部署持续交付的门控签入。解决方法是将 /p:GenerateBuildInfoConfigFile=false 添加到构建定义中的 msbuild 参数。我们正在努力更新生产中的构建 VM,但这需要 24-48 小时才能传播到所有构建池。
基于评论的替代解决方案
如果您的构建服务器上安装了 VS,请确保您已打开它并获得许可。通过 @Phill
虽然晚了,但最近遇到了这个错误,虽然标记为答案的解决方案适用于该版本,但当 Visual Studio 2012 升级到 Visual Studio 构建服务器上的 2015 更新 3 运行 TFS 2015 更新 3。
对我来说很奇怪,我在构建日志中遇到了同样的错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\BuildInfo\Microsoft.VisualStudio.ReleaseManagement.BuildInfo.targets (147): The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception.
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)
我能够简单地重试构建,并且在第二次尝试时没有失败。所以对我来说这是一个暂时的构建问题。
我通过将构建帐户添加到构建机器上的本地管理员组解决了这个错误。
我在将我的 TFS 2013 XAML 构建机器升级到 TFS 2015 后点击了这个。
我还更改了 TFS 2015 XAML 构建用于 运行 构建(服务。
修复:
我必须以该新用户身份登录 TFS 2015 XAML 构建机器并启动 VS(我使用的是 VS2013)。
它 运行 通过它的首次启动问题和设置。
在那之后我有时仍然会看到 Lib2GitSharp 错误问题。
然后我还将 VS(在 TFS 2015 XAML 构建机器上)登录到一个有效的 VS 帐户。
从那以后我就再也没有看到 Lib2GitSharp 错误,也从未使用过 /p:GenerateBuildInfoConfigFile=false 选项。
一段时间以来,我一直遇到 Team Foundation Server build/deploy 进程间歇性地抛出以下错误的问题:
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)
此问题间歇性很强,只需重试构建即可绕过。还有其他人 运行 参与其中吗?有什么解决办法吗?
我知道回答有点晚了,但它可能会对其他人有所帮助
Buck Hodges 的回答
在与 Manoj 和客户支持一起调试后,我们现在已经查明了这个问题的真相。当使用 Azure SDK 2.5 或更早版本时,它会影响作为构建过程一部分的 Azure 部署持续交付的门控签入。解决方法是将 /p:GenerateBuildInfoConfigFile=false 添加到构建定义中的 msbuild 参数。我们正在努力更新生产中的构建 VM,但这需要 24-48 小时才能传播到所有构建池。
基于评论的替代解决方案
如果您的构建服务器上安装了 VS,请确保您已打开它并获得许可。通过 @Phill
虽然晚了,但最近遇到了这个错误,虽然标记为答案的解决方案适用于该版本,但当 Visual Studio 2012 升级到 Visual Studio 构建服务器上的 2015 更新 3 运行 TFS 2015 更新 3。
对我来说很奇怪,我在构建日志中遇到了同样的错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\BuildInfo\Microsoft.VisualStudio.ReleaseManagement.BuildInfo.targets (147): The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception. 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)
我能够简单地重试构建,并且在第二次尝试时没有失败。所以对我来说这是一个暂时的构建问题。
我通过将构建帐户添加到构建机器上的本地管理员组解决了这个错误。
我在将我的 TFS 2013 XAML 构建机器升级到 TFS 2015 后点击了这个。
我还更改了 TFS 2015 XAML 构建用于 运行 构建(服务。
修复:
我必须以该新用户身份登录 TFS 2015 XAML 构建机器并启动 VS(我使用的是 VS2013)。
它 运行 通过它的首次启动问题和设置。
在那之后我有时仍然会看到 Lib2GitSharp 错误问题。
然后我还将 VS(在 TFS 2015 XAML 构建机器上)登录到一个有效的 VS 帐户。
从那以后我就再也没有看到 Lib2GitSharp 错误,也从未使用过 /p:GenerateBuildInfoConfigFile=false 选项。