We've used Infragistics for many years and the main difficulty we have is with versioning. All of our developers use a specific minor version (e.g. 18.2). But if one developer needs to re-install 18.2, they might get a revision that is different than what they had previously. That leads to errors such as:
System.IO.FileLoadException: Could not load file or assembly 'Infragistics4.Win.UltraWinGrid.v18.2, Version=18.2.20182.175, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)File name: 'Infragistics4.Win.UltraWinGrid.v18.2, Version=18.2.20182.175, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb'
When we've encountered this issue in the past, we've required ALL developers to re-install 18.2 to get the same revision that the one developer got. Is there a way to obtain an exact version rather than allowing the installer to always get the latest and greatest?
We've considered using version-free assemblies but having to add binding redirects to all of our app.config files is even less desirable than having all developers re-install.
Are there any other options that we haven't considered? Any advice would be greatly appreciated.
I think we found an easy way to handle this. After installing and getting a newer revision than what the other developers have, just copy the necessary Bin directories from another developer who has the desired revision.
Are there any issues we could run into by doing that?
Note that we are setting SpecificVersion to False for all Infragistics references, but a complication for us is that we have a library assembly that contains a bunch of controls that inherit from Infragistics controls. Based on some quick tests, the above approach seems to be an easy, albeit kludgy, workaround.
Thank you for your post!
The option that you have listed may be a workaround in this case, but I have a couple of recommendations for you in this case as well.
When installing Infragistics controls, you do not have to install the latest revision of the controls, but the Platform Installer will do this by default. On the screen with the “product tree” where you decide which products you wish to install, there will be a checkbox on the right-side under a title of “Updates.” This checkbox will be checked by default, and as long as it remains checked, it will install the latest revision of the type of controls that you are modifying the installation for. If you uncheck this, it will install the base version of the controls.
Once you have installed the base version of the controls, you can visit your My Keys and Downloads Page after signing into your account and click the (for example) 18.2 version that you are registered to. This will open a new set of tabs and one will read “Service Releases.” Clicking this tab will give you a list of all of the revision patches that you can download and run to install that specific version. Doing this may help your development teams stay on the same specific version until the need to upgrade arises.
Please let me know if you have any other questions or concerns on this matter.
Thanks very much for the information, Andrew! It's greatly appreciated.