每次CI构建后,如何直接从Nuget提供新的DLL



我希望这是一个已经回答的问题的愚蠢重复。

我有一个依赖其他项目的ASP.NET网站(DLL复制为bin)。现在,我想要的是每次更新这些项目时,我都会在网站/垃圾箱中获得最新的DLL。我不希望我的CI服务器签入更新的DLL。

我已经为我的项目提供了一个私人的nuget feed,并且只希望它在每次成功的CI构建后都能为最新的DLL提供服务。现在,我的问题是

  1. 是否有一种方法可以直接服务DLL,而无需创建NUPKG?并可能从构建输出文件夹中挑选它们?(由于某些原因,每天为所有dlls创建包装作为邮政构建任务并不是那么方便)如果可能的话,很棒!

  2. 如果没有,我们是否可以避免每次增加版本的DLL,仍然对新DLL进行Nuget更新?基于最新发布日期之类的更新之类的东西?(有大量的DLL和许多依赖关系)

  3. 有没有办法在不构建解决方案的情况下采用最新的DLL?是的,我可以执行Nuget Update命令,但是还有其他方法吗?

有人建议镜像我当前的代码库,并使用Myget或Proget之类的东西。由于几个原因,目前这是不可行的。

在任何nuget依赖关系可能不是您真正需要的东西之后触发视觉工作室的构建 - 这是CI的工作。但是,您可以在packages.config文件中设置版本范围,以使vs(通过nuget)在可用时拉新的nuget软件包。

回答您的特定要点:

  1. 您为什么要使用您无法确定其来源的"随机"松散DLL?Nuget提供了一种机制来跟踪您自己代码所依赖的代码的起源,这使得对错误的跟踪更容易:)如果您依靠包含"每天数百次"的dll的nuget软件包,那么您可能应该只构建这些DLL直接使用您的应用程序。

  2. 请参阅#1-如果您经常重建Nuget软件包,那么您的软件包边界可能错误。考虑一下您的软件包的真正独立程度,看看是否有意义地将一些DLL汇集在一起,甚至是分开的(fork)代码,这些代码在多个单独的应用程序之间共享。如果您创建了Nuget软件包的新版本,则应增加版本编号 - 这是语义版本的基本前提,如果您不遵循此模式,则会陷入混乱。

  3. 要降低最新的Nuget依赖项,nuget update是您的朋友:)

使用myget或proget 可能是解决方案的一部分,但与您上面提到的模式没有直接相关。

相关内容

  • 没有找到相关文章

最新更新