将一个有多个启动项目的解决方案从.NET Framework 4.7.1移植到.NET Core 2.1中

问题描述 投票:5回答:1

我正在将我的解决方案从.NET标准(目标是.NET Framework 4.7.1)迁移到.NET Core(目标是.NET Core 2.1)。netcoreapp2.1). 我的解决方案由12个项目组成,其中两个是web API项目,两个项目都需要同时运行,我把所有解决方案的.csproj中的目标从 "net471 "改为 "netcoreapp2.1"。

我把所有解决方案的.csproj中的目标从 "net471 "改为 "netcoreapp2.1"。在少数情况下,我还不得不更新代码中的API。我仍然在处理一些关于潜在包不兼容的警告。

然而我的主要问题是下面的错误。

错误 CS0017 程序定义了一个以上的入口点。用main编译来指定包含入口点的类型。 Foo.Api D:Code\\Product\Foo\src\Foo.Api\Program.cs 9 Active

我的解决方案有两个启动项目,因为它由两个相关但独立的API组成。我不想指定其中一个作为主项目,因为我需要在启动我的解决方案时同时启动它们,在.NET框架下这是没有问题的。

有没有可能让这些项目一起启动?

请注意,如果我添加 <StartupObject>Foo.Api.Program</StartupObject> 到我的一个API项目 如上所述,我可以成功地让该项目启动。我认为这相当于用main编译。然而,我不能以同样的方式启动其他API项目。相反,我可以 dotnet run 并让它们同时运行。但是,编译时的错误需要解决,才能通过我们的发布管道。

我的解决方案中肯定只有这两个Main方法。下面是在 void Main:

Enter image description here

c# .net-core visual-studio-2017 asp.net-core-webapi porting
1个回答
0
投票

我的问题已经解决了,但我仍然不确定是什么原因造成的。

我引用了一些给出以下警告的包。

Warning NU1701 Package 'CacheManager.SystemRuntimeCaching 1.1.2' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.1'. 这个包可能与你的项目不完全兼容。

我升级了大部分,除了上面的例外,我可以同时运行和调试两个启动项目,没有出现错误。我的猜测是与其中一个包有某种冲突。

© www.soinside.com 2019 - 2024. All rights reserved.