Ошибка MSBuild - Программа не содержит метод stati c 'Main', подходящий для точки входа - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть решение для Visual Studio, содержащее несколько проектов библиотеки классов и проект windows.

Я пытаюсь собрать его с помощью следующей команды msbuild:

MSBuild SolutionName.sln /t:rebuild /p:Configuration=Release;OutputType=Winexe /clp:ErrorsOnly

Однако я получаю следующую ошибку:

CS C: ошибка CS5001: программа не содержит статический метод c 'Main', подходящий для точки входа [C: .. \ BusinessObjects.csproj]

Каким-то образом он пытается найти точку входа внутри проекта библиотеки классов вместо использования windows сервисного проекта.

Я полагаю, что если я попытаюсь создать WindowsService.csproj вместо файла .sln, это может решить проблему. Однако WindowsService.CsProj не содержит всех других ссылок на dll, поэтому мне нужно создать файл .sln.

Есть ли другой способ исправить эту ошибку?

1 Ответ

1 голос
/ 20 февраля 2020

Я полагаю, что если я попытаюсь создать WindowsService.csproj вместо файла .sln, это может решить проблему. Однако WindowsService.CsProj не содержит всех других ссылок на dll, поэтому мне нужно создать файл .sln.

Можно ли как-нибудь исправить эту ошибку?

Так как вы просто Создайте все решение с помощью командной строки msbuild, это означает , что параметры из вашей командной строки применяются ко всем проектам в решении.

Как ваше описание , в вашем решении есть несколько проектов библиотек классов, которые не содержат метод stati c Main, поэтому его нельзя указать как Windows заявка .

Проекты в VS имеют три типа вывода: Console Application и Windows Application содержат функцию stati c Main, а Class Library Application не содержит ее.

Заключение

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

Когда вы создаете один проект Windows Service project, просто убедитесь, что текущий проект имеет функцию stati c main и он действительно имеет.

Solution

1) Поскольку ваше решение содержит только один winexe проект и другие проекты библиотек классов, удалите OutputType=Winexe в командной строке.

MSBuild SolutionName.sln /t:rebuild /p:Configuration=Release /clp:ErrorsOnly

Надеюсь, это может вам помочь.

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