MSBuild:命令行生成错误:解决方案文件错误MSB5023:解析嵌套项目部分时出错

时间:2016-04-21 18:23:37

标签: command-line msbuild

我有一个使用解决方案文件夹拆分项目的解决方案。 在Visual Studio IDE中,解决方案构建正常。

但是,当从命令行使用MSBuild运行构建时,我收到以下错误: -

Solution file error MSB5023: Error parsing the nested project section in solution file. A project with the GUID "{Some Project GUID}" is listed as being nested under project "{Some Solution Folder Project GUID}", but does not exist in the solution.

现在我检查了这两个GUID,它们存在,一个作为项目,另一个作为项目嵌套的解决方案文件夹。 不应该有任何问题。

有没有人有办法解决这个问题?

7 个答案:

答案 0 :(得分:30)

我遇到了同样的问题,并设法解决了问题:

  1. 在NotePad中打开.sln并找到了Guids
  2. 我的一个项目没有关闭(" EndProject"错过了)
  3. 干杯,希望这可以帮助任何人

答案 1 :(得分:9)

或者您可以将新文件添加到解决方案并保存。这应该重建解决方案。确认构建工作正常后,可以安全地删除并保存文件。

答案 2 :(得分:2)

它可能已经回答了,但我会逐步提及,以使其更容易实现。

修复步骤:

  1. 将新的虚拟项目添加到解决方案中
  2. 使用全部保存按钮更新解决方案
  3. 删除先前添加并构建的虚拟项目。它是固定的
  4. 此外,如果您使用的是源代码管理,请将更新的.sln文件与旧文件进行比较,以了解丢失的更改。

答案 3 :(得分:1)

由于合并冲突,我的解决方案文件试图将两个项目粘贴到一个不再存在的解决方案文件夹中。底部附近的NestedProjects部分提到了从顶部的项目枚举中删除的Guid。

答案 4 :(得分:1)

有可能是合并冲突问题改变了 .sln 文件,通过在您喜欢的文本编辑器中打开并检查是否有任何冲突标记来确认不是这种情况。

答案 5 :(得分:0)

您可能还存在一个问题,即该行可能由于合并冲突而进入此处,而在删除项目时该行并未被删除。如果通过GUID的全局搜索在项目中找不到其他引用,请尝试删除.sln文件中的行并重新构建。

答案 6 :(得分:0)

我创建了一个空白解决方案并添加了我的 csproj。 之后,我在 Azure DevOps 中的 YAML 可以构建应用程序