Team System Developer Center >
Visual Studio Team System Forums
>
Team Foundation Server - Build Automation
>
Receiving MSB4018 OutOfMemoryException while using TeamBuild
Receiving MSB4018 OutOfMemoryException while using TeamBuild
- Hi,
I'm receiving following error when I try to build our solution:
error MSB4018: The "MSBuild" task failed unexpectedly.
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.String.GetStringForStringBuilder(String value, Int32 startIndex, Int32 length, Int32 capacity)
at System.Text.StringBuilder.GetNewString(String currentString, Int32 requiredLength)
at System.Text.StringBuilder.Append(String value)
at Microsoft.Build.BuildEngine.ItemExpander.ExpandItemVector(Match itemVector)
at System.Text.RegularExpressions.RegexReplacement.Replace(MatchEvaluator evaluator, Regex regex, String input, Int32 count, Int32 startat)
at System.Text.RegularExpressions.Regex.Replace(String input, MatchEvaluator evaluator, Int32 count, Int32 startat)
at System.Text.RegularExpressions.Regex.Replace(String input, MatchEvaluator evaluator)
at Microsoft.Build.BuildEngine.ItemExpander.ExpandEmbeddedItemVectors(String s, XmlNode parentNode, ReadOnlyLookup readOnlyLookup)
at Microsoft.Build.BuildEngine.Expander.ExpandItemsIntoStringLeaveEscaped(String expression, XmlNode expressionNode)
at Microsoft.Build.BuildEngine.Expander.ExpandAllIntoStringLeaveEscaped(String expression, XmlNode expressionNode)
at Microsoft.Build.BuildEngine.StringExpressionNode.GetExpandedValue(ConditionEvaluationState state)
at Microsoft.Build.BuildEngine.StringExpressionNode.CanNumericEvaluate(ConditionEvaluationState state)
at Microsoft.Build.BuildEngine.MultipleComparisonNode.BoolEvaluate(ConditionEvaluationState state)
at Microsoft.Build.BuildEngine.GenericExpressionNode.Evaluate(ConditionEvaluationState state)
at Microsoft.Build.BuildEngine.Utilities.EvaluateCondition(String condition, XmlAttribute conditionAttribute, Expander expander, Hashtable conditionedPropertiesTable, ParserOptions itemListOptions, EngineLoggingServices loggingServices, BuildEventContext buildEventContext)
at Microsoft.Build.BuildEngine.Target.Build(ProjectBuildState buildContext)
at Microsoft.Build.BuildEngine.Project.ExecuteNextActionForProjectContext(ProjectBuildState buildContext, Boolean initialCall)
at Microsoft.Build.BuildEngine.Project.CalculateNextActionForProjectContext(ProjectBuildState buildContext)
at Microsoft.Build.BuildEngine.Project.ContinueBuild(ProjectBuildState buildContext, TaskExecutionContext taskExecutionContext)
at Microsoft.Build.BuildEngine.Project.BuildInternal(BuildRequest buildRequest)
at Microsoft.Build.BuildEngine.Engine.BuildProjectInternalInitial(BuildRequest buildRequest, Project project)
at Microsoft.Build.BuildEngine.Engine.BuildProjectInternal(BuildRequest buildRequest, ProjectBuildState buildContext, TaskExecutionContext taskExecutionContext, Boolean initialCall)
at Microsoft.Build.BuildEngine.Engine.BuildProjectFileInternal(BuildRequest buildRequest)
at Microsoft.Build.BuildEngine.Engine.EngineBuildLoop(BuildRequest terminatingBuildRequest)
at Microsoft.Build.BuildEngine.TaskExecutionModule.BuildProjectFile(Int32 handleId, String[] projectFileNames, String[] targetNames, IDictionary[] globalPropertiesPerProject, IDictionary[] targetOutputsPerProject, EngineLoggingServices loggingServices, String[] toolsVersions, Boolean useResultsCache, Boolean unloadProjectsOnCompletion, BuildEventContext taskContext)
at Microsoft.Build.BuildEngine.EngineProxy.BuildProjectFilesInParallel(String[] projectFileNames, String[] targetNames, IDictionary[] globalProperties, IDictionary[] targetOutputsPerProject, String[] toolsVersions, Boolean useResultsCache, Boolean unloadProjectsOnCompletion)
at Microsoft.Build.Tasks.MSBuild.ExecuteTargets(ITaskItem[] projects, Hashtable propertiesTable, ArrayList targetLists, Boolean stopOnFirstFailure, Boolean rebaseOutputs, IBuildEngine2 buildEngine, TaskLoggingHelper log, ArrayList targetOutputs, Boolean useResultsCache, Boolean unloadProjectsOnCompletion, String toolsVersion)
at Microsoft.Build.Tasks.MSBuild.BuildProjectsInParallel(Hashtable propertiesTable, ArrayList targetLists, Boolean success, Boolean[] skipProjects)
at Microsoft.Build.Tasks.MSBuild.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)
Build process ends up after receiving this error. Solution that I try to build consists of 45 projects and includes hierarchically project output reference dependencies. I start build via using Visual Studio 2008 Team Explorer. Build server has 3GB memory and msbuild process which is running during build uses up to 1.6-1.7GB of them. So, there is still at least 1GB of memory available to use during build. I can't post example project or any other information regarding project here because of security situations.
What should I do to handle this error? Is there any hotfix or workaround?
Thanks in advance,
--efe
Answers
All Replies
- Hi efegok,
On 32bit system, each process has 2 GB memory(physical memory and virtual memory) at most. Please refer to this article for detail. http://support.microsoft.com/default.aspx?scid=kb;en-us;820108. You can use 4GT RAM Tuning to address more memory for a process.
Best Regards,
Ruiz
Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Sincerely, Ruiz Yi- Marked As Answer byRuiz YiModeratorMonday, November 02, 2009 5:04 AM
- Unmarked As Answer byefegok Friday, November 06, 2009 11:58 AM
- So, should I assume that a msbuild process could use 1.7GB of memory while Visual Studio builds same solution using ~300MB of memory? Is this normal behavior of team build?


