Kentico binaries (dll files) in "Lib" folder vs. source control

Yannick - asked on February 9, 2016 09:37

How do you deal with the dll files that are added to the Lib folder by the Kentico Installation Manager? They are great in amount and size + normally binaries are not included in source control... But we want the project to compile on a Continuous Integration server so the dll's need to end up in the bin folder somehow.

I read that Kentico will not provide NuGet packages per Kentico module in the near future, because the codebase is not decoupled per module enough. We're thinking of creating a single NuGet package with the dll files of all modules for each Kentico version ourselves. It would be great if Kentico would provide these for all Kentico versions (also the minor versions and bugfix versions) on kentico.com for registered customers. Would this be possible in the near future? Unless you can suggest another solution that does not involve adding the dll's to source control?

Recent Answers


Brenden Kehren answered on February 9, 2016 15:42

Knowing Kentico doesn't have NuGet packages for modules and such, means the best thing to do is store the dlls in source control if you want to use a CI tool.

In my opinion, not including the dlls in source control is like trying to "install" Microsoft Office on another computer by only copying the Program Files folder to another computer, it just won't work. Kentico is a piece of software and excluding them just doesn't make sense.

Others may have more feedback, experience and/or opinions and I'm excited to hear those as well!

2 votesVote for this answer Mark as a Correct answer

David te Kloese answered on February 9, 2016 17:16

Hi,

I agree with Brenden. Just include them in your Source control. For using CI it would be the fastest option. This would also make it easier to update/add/remove single dll's.

Greets,

David

0 votesVote for this answer Mark as a Correct answer

Yannick - answered on February 10, 2016 10:13 (last edited on February 10, 2016 10:38)

Thank you for your answers. I consider Kentico as an external dependency that's indeed required. But just like all other things that are not source files (CSharp generated *.dll, LESS/SASS generated *.css, TypeScript generated *.js,...) I don't think it belongs in source control. By default our VCS excludes dll files from getting added to the repository and the repository size would grow significantly if we would add them.

Using NuGet would allow to restore (download) a centrally managed package which has a clear version number. Using a Lib folder, it's less guaranteed that a dll addition/update by 1 developer will end up in VCS.

Also I don't think we'll be replacing individual dll's, as we don't manage them (it's done by Kentico). If there's a change then there will be a new Kentico release (major/minor/hotfix) as a whole. (Mind that we are new to Kentico developent so I could be wrong on this point.)

See also http://ideas.kentico.com/forums/239189-kentico-product-ideas/suggestions/3898999-add-the-kentico-libraries-to-nuget

0 votesVote for this answer Mark as a Correct answer

Brenden Kehren answered on February 10, 2016 14:03

If you perform hotfixes and upgrades then yes you do manage them in your project when the project is upgraded. So if you perform either of those you'd want them in your source control at some point. This way you can keep track or roll back to a previous version if you need. This comes in very handy when you are doing more than one upgrade at a time i.e.: v7 -> v8 -> v8.1 -> v8.2.

0 votesVote for this answer Mark as a Correct answer

   Please, sign in to be able to submit a new answer.