Я полагаю, что если я попытаюсь создать 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
Надеюсь, это может вам помочь.