Портирование решения с несколькими запускаемыми проектами из .NET Framework 4.7.1 в .NET Core 2.1 - PullRequest
0 голосов
/ 19 ноября 2018

Я в процессе миграции своего решения из .NET Standard (для .NET Framework 4.7.1) в .NET Core (для netcoreapp2.1). Мое решение состоит из 12 проектов, два из которых являются проектами веб-API, которые должны выполняться одновременно.

Я изменил цели во всех моих решениях .csproj с "net471" на "netcoreapp2.1". В некоторых случаях мне также приходилось обновлять API в коде. До сих пор есть несколько предупреждений о возможной несовместимости пакетов.

Однако моя главная проблема - следующая ошибка:

Ошибка CS0017 В программе определено более одной точки входа. Скомпилируйте с / main, чтобы указать тип, содержащий точку входа. Foo.Api D: \ Code \ Product \ Foo \ src \ Foo.Api \ Program.cs 9 Active

Мое решение имеет два проекта запуска, так как оно состоит из двух API, которые связаны, но являются отдельными. Я не хочу указывать один в качестве основного, поскольку мне нужно, чтобы они оба запускались при запуске моего решения, и в .NET Framework это не было проблемой.

Возможно ли, чтобы эти проекты запускались вместе?

РЕДАКТИРОВАТЬ

Обратите внимание, что если я добавлю <StartupObject>Foo.Api.Program</StartupObject> в один из моих проектов API , как описано здесь , я смогу успешно запустить этот проект. Я думаю, что это эквивалентно выполнению с / main. Однако я не могу заставить другой проект API запускаться таким же образом, вместо этого я могу dotnet run запустить этот проект. Тем не менее, ошибка времени компиляции должна быть исправлена, чтобы она могла пройти через наш конвейер релиза.

В моем решении определенно есть только эти два метода Main, вот результаты поиска по void Main:

enter image description here

1 Ответ

0 голосов
/ 21 ноября 2018

Моя проблема решена, но я все еще не уверен, что ее вызвало.

Я ссылался на несколько пакетов, которые выдавали следующее предупреждение:

Предупреждение NU1701 Пакет «CacheManager.SystemRuntimeCaching 1.1.2» был восстановлен с использованием «.NETFramework, Version = v4.6.1» вместо целевой платформы проекта «.NETCoreApp, Version = v2.1». Этот пакет может быть не полностью совместим с вашим проектом.

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

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