将具有多个启动项目的解决方案从 .NET Framework 4.7.1 移植到 .NET Core 2.1
Porting a solution with multiple startup projects from .NET Framework 4.7.1 to .NET Core 2.1
我正在将我的解决方案从 .NET Standard(针对 .NET Framework 4.7.1)迁移到 .NET Core(针对 netcoreapp2.1)。我的解决方案包含 12 个项目,其中两个是 Web API 项目,它们都需要同时 运行。
我将所有解决方案的 .csproj 中的目标从 "net471" 更改为 "netcoreapp2.1"。在少数情况下,我还必须更新代码中的 API。关于潜在的包不兼容,我仍然有几个警告。
然而我的主要问题是以下错误:
Error CS0017 Program has more than one entry point defined. Compile with /main to specify the type that contains the entry point. 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
那个项目并让它们都 运行ning。但是,需要解决编译时错误才能通过我们的发布管道。
我的解决方案中肯定只有这两个Main方法。这是 void Main
:
上的查找结果
我的问题已经解决,但我仍然不确定是什么原因造成的。
我引用了一些给出以下警告的软件包:
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'. This package may not be fully compatible with your project.
我升级了其中的大部分,除了上面的例外,我能够运行同时调试两个启动项目而没有错误。我的猜测是其中一个软件包存在某种冲突。
我正在将我的解决方案从 .NET Standard(针对 .NET Framework 4.7.1)迁移到 .NET Core(针对 netcoreapp2.1)。我的解决方案包含 12 个项目,其中两个是 Web API 项目,它们都需要同时 运行。
我将所有解决方案的 .csproj 中的目标从 "net471" 更改为 "netcoreapp2.1"。在少数情况下,我还必须更新代码中的 API。关于潜在的包不兼容,我仍然有几个警告。
然而我的主要问题是以下错误:
Error CS0017 Program has more than one entry point defined. Compile with /main to specify the type that contains the entry point. Foo.Api D:\Code\Product\Foo\src\Foo.Api\Program.cs 9 Active
我的解决方案有两个启动项目,因为它由两个相关但独立的 API 组成。我不想指定一个作为主要的,因为在启动我的解决方案时我需要它们都启动,并且在 .NET Framework 下这没问题。
是否可以让这些项目一起启动?
请注意,如果我将 <StartupObject>Foo.Api.Program</StartupObject>
添加到我的 API 项目之一 dotnet run
那个项目并让它们都 运行ning。但是,需要解决编译时错误才能通过我们的发布管道。
我的解决方案中肯定只有这两个Main方法。这是 void Main
:
我的问题已经解决,但我仍然不确定是什么原因造成的。
我引用了一些给出以下警告的软件包:
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'. This package may not be fully compatible with your project.
我升级了其中的大部分,除了上面的例外,我能够运行同时调试两个启动项目而没有错误。我的猜测是其中一个软件包存在某种冲突。