我正在将我的解决方案从.NET Standard(针对.NET Framework 4.7.1)迁移到.NET Core(针对netcoreapp2.1)。我的解决方案包含12个项目,其中两个是Web API项目,都需要同时运行。
我将解决方案的所有.csproj中的目标从“ net471”更改为“ netcoreapp2.1”。在某些情况下,我还必须更新代码中的API。关于潜在的软件包不兼容问题,我仍要处理几个警告。
但是我的主要问题是以下错误:
错误CS0017程序定义了多个入口点。用/ main编译以指定包含入口点的类型。 Foo.Api D:\ Code \ Product \ Foo \ src \ Foo.Api \ Program.cs 9有效
我的解决方案有两个启动项目,因为它包含两个相关但独立的API。我不想指定一个作为主要对象,因为在启动我的解决方案时都需要它们同时启动,在.NET Framework下这没问题。
是否可以让这些项目一起启动?
编辑
请注意,如果我将let storyboard = UIStoryboard(name: "Main", bundle: nil)
if UserDefaults.standard.object(forKey: USERID) != nil {
viewController = storyboard.instantiateViewController(withIdentifier: "HomeVC_ID") as! HomeVC
} else {
viewController = storyboard.instantiateViewController(withIdentifier: "LoginVC_ID") as! LoginVC
}
let navigationController = UINavigationController(rootViewController:viewController)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
添加到我的一个API项目as described here中,则可以成功启动该项目。我认为这等同于使用/ main进行编译。但是,我无法让其他API项目以相同的方式启动,而是可以<StartupObject>Foo.Api.Program</StartupObject>
将该项目同时运行。但是,需要解决编译时错误才能使其通过我们的发布管道。
在我的解决方案中,肯定只有这两种Main方法,这是在dotnet run
上找到的结果:
答案 0 :(得分:0)
我的问题已解决,但是我仍然不确定是什么原因引起的。
我引用了一些发出以下警告的软件包:
警告NU1701软件包'CacheManager.SystemRuntimeCaching 1.1.2'使用'.NETFramework,Version = v4.6.1'而不是项目目标框架'.NETCoreApp,Version = v2.1'恢复。该软件包可能与您的项目不完全兼容。
除了上面提到的例外,我升级了其中的大多数,并且能够同时运行和调试两个启动项目,而没有出现错误。我的猜测是其中一个软件包存在某种冲突。不幸的是,我无法提供更多帮助,但是,如果有人能够给出明确的答案,我当然会将该答案标记为正确的。