2

当我开始构建我的应用程序时,Msbuild 向我抛出了一个异常。如果有人对此错误有任何想法,请告诉我。

Unhandled Exception: Microsoft.Build.Shared.InternalErrorException: MSB0001: Internal MSBuild Error: The given key was not present in the dictionary.
=============
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Microsoft.Build.Construction.SolutionProjectGenerator.AddMetaprojectReferenceItems(ProjectInstance traversalProject, ProjectInstance metaprojectInstance, ProjectInSolution project)
at Microsoft.Build.Construction.SolutionProjectGenerator.CreateMetaproject(ProjectInstance traversalProject, ProjectInSolution project, ProjectConfigurationInSolution projectConfiguration)
at Microsoft.Build.Construction.SolutionProjectGenerator.EvaluateAndAddProjects(List`1 projectsInOrder, List`1 projectInstances, ProjectInstance traversalInstance, String selectedSolutionConfiguration)
at Microsoft.Build.Construction.SolutionProjectGenerator.CreateSolutionProject(String wrapperProjectToolsVersion, Boolean explicitToolsVersionSpecified)
at Microsoft.Build.Construction.SolutionProjectGenerator.Generate()
at Microsoft.Build.Execution.ProjectInstance.GenerateSolutionWrapper(String projectFile, IDictionary`2 globalProperties, String toolsVersion, ILoggingService loggingService, BuildEventContext projectBuildEventContext)
at Microsoft.Build.Execution.ProjectInstance.LoadSolutionForBuild(String projectFile, PropertyDictionary`1 globalPropertiesInstances, String toolsVersion, BuildParameters buildParameters, ILoggingService loggingService, BuildEventContext projectBuildEventContext)
at Microsoft.Build.Execution.BuildManager.LoadSolutionIntoConfiguration(BuildRequestConfiguration config, BuildEventContext buildEventContext)
at Microsoft.Build.Execution.BuildManager.HandleNewRequest(Int32 node, BuildRequestBlocker blocker)
at Microsoft.Build.Execution.BuildManager.Microsoft.Build.BackEnd.INodePacketHandler.PacketReceived(Int32 node, INodePacket packet)
at Microsoft.Build.BackEnd.NodeManager.RoutePacket(Int32 nodeId, INodePacket packet)
at Microsoft.Build.BackEnd.NodeProviderInProc.RoutePacket(Int32 nodeId, INodePacket packet)
at Microsoft.Build.BackEnd.NodeEndpointInProc.SendData(INodePacket packet)
at Microsoft.Build.BackEnd.InProcNode.OnNewRequest(BuildRequestBlocker blocker)
at Microsoft.Build.BackEnd.BuildRequestEngine.RaiseRequestBlocked(BuildRequestBlocker blocker)
at Microsoft.Build.BackEnd.BuildRequestEngine.IssueBuildRequest(BuildRequestBlocker blocker)
at Microsoft.Build.BackEnd.BuildRequestEngine.ReportConfigurationResponse(BuildRequestConfigurationResponse response)
at Microsoft.Build.BackEnd.InProcNode.HandlePacket(INodePacket packet)
at Microsoft.Build.BackEnd.InProcNode.Run(Exception& shutdownException)

---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Microsoft.Build.Construction.SolutionProjectGenerator.AddMetaprojectReferenceItems(ProjectInstance traversalProject, ProjectInstance metaprojectInstance, ProjectInSolution project)
at Microsoft.Build.Construction.SolutionProjectGenerator.CreateMetaproject(ProjectInstance traversalProject, ProjectInSolution project, ProjectConfigurationInSolution projectConfiguration)
at Microsoft.Build.Construction.SolutionProjectGenerator.EvaluateAndAddProjects(List`1 projectsInOrder, List`1 projectInstances, ProjectInstance traversalInstance, String selectedSolutionConfiguration)
at Microsoft.Build.Construction.SolutionProjectGenerator.CreateSolutionProject(String wrapperProjectToolsVersion, Boolean explicitToolsVersionSpecified)
at Microsoft.Build.Construction.SolutionProjectGenerator.Generate()
at Microsoft.Build.Execution.ProjectInstance.GenerateSolutionWrapper(String projectFile, IDictionary`2 globalProperties, String toolsVersion, ILoggingService loggingService, BuildEventContext projectBuildEventContext)
at Microsoft.Build.Execution.ProjectInstance.LoadSolutionForBuild(String projectFile, PropertyDictionary`1 globalPropertiesInstances, String toolsVersion, BuildParameters buildParameters, ILoggingService loggingService, BuildEventContext projectBuildEventContext)

谢谢你。

4

1 回答 1

0

这是一个内部错误。您可以通过异常类型以及错误代码 (MSB0001) 来判断。这意味着它只会发生在某些 MSBuild 版本中,并且可能只会发生在某些特定的项目文件中。

我见过在 VS2010 中出现类似错误并在后续版本中修复的情况。我见过一些情况,它没有出现在 VS2013 中,而是在 VS2015 或 VS2017 中引入(没有检查所有版本)。这些案件可能不相关。

要询问有关内部工具问题的正确问题,您需要花一些时间修改(简化)您的项目,直到您知道哪种项目文件更改(或源文件更改)会打开和关闭此问题,以及使用哪个工具版本( s)。

于 2017-09-13T16:42:47.727 回答