There is an unsaved comment in progress. You will lose your changes if you continue. Are you sure you want to reopen the work item?
GAC deployment problems with 4.5 versioning
I understand the main idea behind version changes in 4.5 but i would like to point out new issue that it raises in combination with GAC deployment. In our environment we have a multiple applications deployed on our server pool where each application could
use different JSON.NET release. We deploy all 3rd party dependencies into GAC to avoid having a copy in each application all around the server. Now with version 4.5 all JSON.NET releases will be an identical assembly from GAC point of view.
1) You can not tell which release is in GAC without a manual close examination. Automated tools using "gacutil /l Newtonsoft.Json" will tell you just the 18.104.22.168 assembly version for all releases. Someone has to manually open assembly directory in
windows folder, find the Newtonsoft.Json 22.214.171.124, open its properties and read file version. That has to be done on every server in the pool just to confirm that correct release is deployed.
2) Usual GAC deployment of newer releases does not work. Command "gacutil /i Newtonsoft.Json" on release 2 will say that assembly is already installed if release 1 is present. You have to add and /f flag to force overwrite existing 126.96.36.199 assembly
to get new release deployed.
3) Multiple releases of version 4.5 can not co-exist in GAC. While there "should not" be any breaking changes, all applications must undergo proper testing and "get ready" for new release of a dependency. Before our applications could be
simply switched over to a new version one by one because they could locate appropriate release in GAC. Now they are all forced to a new release at the same time.
4) Staging of application upgrades becomes harder. We pre-deploy all GAC dependencies ahead of actual application release date to reduce our maintenance window. We can no longer do that with JSON.NET because it overwrites the current JSON.NET and all current
applications start using new version immediately. This is not intended since they were never tested with it.
Please consider returning to the previous versioning system.