C# 在Windows服务和Azure WebJob之间利用单一代码库的方法

C# 在Windows服务和Azure WebJob之间利用单一代码库的方法,c#,azure,windows-services,webjob,C#,Azure,Windows Services,Webjob,我正在开发一个定时循环流程,在某些情况下,它将部署在prem上,在其他情况下,它将部署在云(Azure)中。我正在研究Windows服务和Azure WebJob。考虑到我只需要周期性流程作为计时部分,我正在考虑将大部分逻辑放在一个库中,在部署到Azure时,本地部署的Windows服务或WebJob之间的入口点是不同的。每个csproj(服务和WebJob)将只处理定时循环和配置设置,然后为大部分工作调用库 我的问题是:是否有其他设计组合可以更好地满足这些需求?我读过关于在WebJob中包装现

我正在开发一个定时循环流程,在某些情况下,它将部署在prem上,在其他情况下,它将部署在云(Azure)中。我正在研究Windows服务和Azure WebJob。考虑到我只需要周期性流程作为计时部分,我正在考虑将大部分逻辑放在一个库中,在部署到Azure时,本地部署的Windows服务或WebJob之间的入口点是不同的。每个csproj(服务和WebJob)将只处理定时循环和配置设置,然后为大部分工作调用库


我的问题是:是否有其他设计组合可以更好地满足这些需求?我读过关于在WebJob中包装现有windows服务的文章,但我认为在这种情况下没有必要这样做,因为我是从零开始的。

当涉及到保持公共代码最新,以及知道哪些应用程序使用哪些版本时,bets解决方案是使用受人尊重的设计模式创建类库项目,并将其转换为nuget项目

您知道您可以托管自己的私有NuGet存储库,创建自己的包,并在自己的网络内部托管它们

这是一篇关于“如何从类库项目中创建Nuget包”的非常好的文章。您可以利用它并在所有代码中共享它

最后,您可以直接从windows服务/WebJob调用

如果您需要与设计解决方案相关的任何帮助,请告诉我


希望能有所帮助。

听起来您同意我的方法,将公共代码库添加为NuGet包,这完全有道理。谢谢是的,我完全同意这一点。请接受这个答案,因为它将帮助其他有同样问题的人。如果您在设计方面需要进一步的帮助,也请告诉我。