Ошибка MSBuild «error CS1041: Identifier expected; ‘static’ is a keyword… error CS1518…»

Ошибка MSBuild
При сборке проекта с помощью «MS Build» через командную строку столкнулся с ошибками, которые не позволяли собрать проект. После изучения данного вопроса было найдено решение.

Ошибка звучит следующим образом:

Проанализировав код выяснил, что «MS Build» не нравится подключение классов через «using static…»:

Ошибка MSBuild

Если собираем проект в Visual Studio 2017, то ошибки нет.
Если собираем проект с помощью «MS Build», который идёт с .NET Framework и расположен по пути «c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe», то получим ошибку. Почему так происходит я не понял.

Чтобы избавиться от ошибки при сборке и не ставить Visual Studio на сервере, где идёт сборка проекта, необходимо отдельно установить «MS Build» и использовать для сборки его, а не тот, который идёт с .NET Framework.

Установка «Microsoft Build Tools»

Идём на официальный сайт https://visualstudio.microsoft.com/ru/downloads/ и там ниже на странице скачиваем установщик Build Tools:

Ошибка MSBuild

Запускаем и устанавливаем. После установки он у меня находился по пути:

c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe

В зависимости от года прочтения статьи путь может немного изменяться.

Сборка оффлайн установщика «Microsoft Build Tools»

Если сеть закрытая и у сервера нет доступа в интернет, то скачиваем установщик и собираем оффлайн инсталлятор командой:

Получите каталог более 200 Мб. Перетаскиваете каталог на сервер и запускаете установку, командой:

Нигде ничего не изменяйте и везде жмите «Далее/Установить». Устанавливается быстро.

От ошибки избавились.

Можно было убрать «using static…» и переписать в проекте код, но я пошёл по пути наименьшего сопротивления.

Добавить комментарий

Ваш e-mail не будет опубликован.