Ошибки MSBuild на сервере сборки, но не на компьютерах разработчиков - PullRequest
0 голосов
/ 22 октября 2018
"someSolutionFile.sln: error MSB4025: The project file could not be loaded. Data at the root level is invalid. Line 2, position 1"

Вызов MSBuild, который выдает ошибки, действительно прост:

<MSBuild
  Projects="someSolutionFile.sln"
  Targets="someProject.csproj"
  Properties="..."
  BuildInParallel="false"
/>

И на dev-машинах, и на сервере сборки используется одна и та же версия msbuild:

Microsoft (R) Build Engine version 15.8.169+g1ccb72aefa for .NET Framework

ПочемуМожет ли быть так, что только ошибки сервера сборки, но не dev-машины?

1 Ответ

0 голосов
/ 22 октября 2018

Оказывается, что одно из слияний в .sln случайно удалило раздел [endproject].Сообщение об ошибке действительно вводило в заблуждение относительно того, что было неправильно:

 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8DCAA708-E9BE-4C30-B267-F60B2F36C031}"
    ProjectSection(SolutionItems) = preProject
        Performance1.psess = Performance1.psess
    EndProjectSection
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "[some project 1]", "[some project 1].csproj", "{2CD27468-B1D4-4380-BF06-78CCDDCE53C2}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "[some project 2]", "[some project 2].csproj", "{0DB85F19-4E9E-417D-828D-D44566554B5F}"
 EndProject  <--- this was missing

Если у вас есть такие проблемы, Visual Studio почему-то не будет жаловаться.Чтобы повторно нормализовать файл .sln, просто:

  1. Добавьте новый фиктивный проект в решение и сохраните решение в целом
  2. Удалите фиктивный проект, который вы только что добавили, и повторносохранить решение

Файл .sln теперь должен быть нормальным.Вы можете передать это своим веткам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...