Hi, In our app we have classic retired controls (WebDateChooser, UltraWebTree, Ultrawebtab... etc) and now we are trying to update the application to last control version (2012.1) still using old controls using the 'version free dll' approach, because now is impossible for us to replace thousands of controls in hundreds of forms using the new ones.
So we have followed the instructions of 'http://es.infragistics.com/community/blogs/taz_abdeali/archive/2011/11/17/asp-net-product-changes-in-2011-volume-2.aspx' post and somehow we have managed to make the application work with 2011.2 version of the controls but when we have updated the dlls with the 2012.1 versionfree dlls and we have tried to compile the app we have found errors like:
1) If we overwrite the 2011.2 dlls with the 2012.1 dlls (keeping at the bin dlls that are not in 2012.1 like Infragistics.Web.Ui.Webdatechooser)-The type or namespace name 'WebCurrencyEdit' does not exist in the namespace 'Infragistics.WebUI.WebDataInput' -The type 'Infragistics.WebUI.WebSchedule.WebDateChooser' exists in both 'c:\development\Integra\DEV\Web\bin\Infragistics.WebUI.WebSchedule.dll' and 'c:\development\Integra\DEV\Web\bin\Infragistics.WebUI.WebDateChooser.dll'-The type or namespace name 'ValueChangeEventArgs' does not exist in the namespace 'Infragistics.WebUI.WebDataInput' among other similar errors...
2) If we delete all the 2011.2 dlls and put at the bin only the 2012.1 dlls-The type or namespace name 'WebTreeNodeEventArgs' could not be found (are you missing a using directive or an assembly reference?)-The type or namespace name 'WebDateTimeEdit' does not exist in the namespace 'Infragistics.WebUI.WebDataInput'-The type or namespace name 'UltraWebNavigator' does not exist in the namespace 'Infragistics.WebUI' (are you missing an assembly reference?)among other similar errors...
I understand that problem with 2nd option is because dlls like UltraWebNavigator.dll are missing, and problem like 'The type or namespace name 'ValueChangeEventArgs' does not exist in the namespace 'Infragistics.WebUI.WebDataInput' is because those methods/properties are missing on 2012.2 dll version of WebDataInput... so should we mix 2011.2 and 2012.1 dlls? But then there are errors like the 'The type 'Infragistics.WebUI.WebSchedule.WebDateChooser' exists in both 'c:\development\Integra\DEV\Web\bin\Infragistics.WebUI.WebSchedule.dll' and 'c:\development\Integra\DEV\Web\bin\Infragistics.WebUI.WebDateChooser.dll'' one. Should we keep the datechooser.dll or not?
From the documentation, help... I really feel that the process to keep using both classic and new controls at the same time is not clear. Could you please help us or provide a clear list of instructions of how to use at the same time classic controls and 2012.1 version of the controls? (The documentation provided, which applyes only for 2011.2 version explains only 'Make sure for all the non-classic controls that you are using, you copy the version-less assemblies for those controls to your applications bin folder as well. You need to use version-less assemblies for both the controls if you want to you classic and non-classic controls together in an application')
Any help would be appreciated. Thanks in advance
Hello endaliadev ,
Check if somewhere in the references you don’t define the version of the Infragistics.WebUI.Shared ,Infragistics.WebUI.UltraWebNavigator assembly or the Infragistics.WebUI.Misc assembly. They should be defined like this:
<%@ Register Assembly="Infragistics.WebUI.Misc" Namespace="Infragistics.WebUI.Misc"
TagPrefix="igmisc" %>
<%@ Register Assembly="Infragistics.WebUI.UltraWebNavigator" Namespace="Infragistics.WebUI.UltraWebNavigator"
TagPrefix="ignav" %>
The Shared assembly doesn’t need to be defined in the aspx page or in the assemblies in the web config file. The only thing you need for it is the assemblyBinding that you’ve already set. I notice in it however that you try to redirect to version 11.2 but define in the newVersion 12.2 version. If you want to bind to 12.1 you need to have:
<bindingRedirect oldVersion="11.1.0.0-12.1.0.0"
newVersion="12.1.20121.2072"/>
not
<bindingRedirect oldVersion="11.1.0.0-11.2.0.0" newVersion="12.2.20121.2072"/>
Version 12.2 is not released yet so I presume you’re trying to use version 12.1. Make sure you reference to that version and not 12.2.
Let me know if you need further assistance.
Best Regards,
Maya Kirova
Developer Support Engineer
Infragistics, Inc.
http://es.infragistics.com/support
Hi, following your instructions we have managed to compile everything (but we have needed for example to overwrite 2012.1 version of Infragistics.WebUI.WebSchedule with 2011.1 version, what sounds strange to us...)But now when we are tryng to access to some form which uses the ultrawebtree (and then web.shared) this error apears:Could not load file or assembly 'Infragistics.WebUI.Shared, Version=11.1.20111.1006, 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)The declaration at the .aspx is
<%@ Register Assembly="Infragistics.WebUI.UltraWebNavigator" Namespace="Infragistics.WebUI.UltraWebNavigator" TagPrefix="ignav" %>At the web.config we have added the runtime specification<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Infragistics.WebUI.Shared" publicKeyToken="7DD5C3163F2CD0CB" culture="neutral"/> <bindingRedirect oldVersion="11.1.0.0-11.2.0.0" newVersion="12.2.20121.2072"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Infragistics.WebUI.Documents.Excel" publicKeyToken="7DD5C3163F2CD0CB" culture="neutral"/> <bindingRedirect oldVersion="11.1.0.0-11.2.0.0" newVersion="12.2.20121.2072"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Infragistics.WebUI.Documents.Reports" publicKeyToken="7DD5C3163F2CD0CB" culture="neutral"/> <bindingRedirect oldVersion="11.1.0.0-11.2.0.0" newVersion="12.2.20121.2072"/> </dependentAssembly> </assemblyBinding> </runtime>And at the dll we have as the instructions said the dll Infragistics.WebUI.Shared.dll version-free 12.2.20121.2072
Any idea what is the remaining problem?
Thanks in advance
Hello endaliadev,
Thank you for posting in our forum.Basically here are the steps you need to take:
1) Locate the version free assemblies for your version. They ship as part of the product so in your installation folder under Asp.Net you’ll find the Version-Free folder. Inside are all of the assemblies.
Those are the assemblies you need in your bin folder. Note that they’re all in the version you have installed (in your case version will be 12.1.20121.xxxx) and that they’re all assemblies for non-retired controls . So you’ll have for example Infragistics.Web.dll, Infragistics.WebUI.WebSchedule.dll and so on but you won’t have the Infragistics.WebUI.UltraWebGrid.dll, Infragistics.WebUI.WebCombo.dll and so on . The retired controls assemblies you can get from 11.1.
2) Put the ones you need for your application in the Bin folder and make sure that all references point to them.
3) You need to modify the web config and set binding redirects for the following assemblies shared assemblies Infragistics.WebUI.Shared, Infragistics.WebUI.Documents.Excel, Infragistics.WebUI.Documents.Reports if you need to use them. Pay attention to the binding redirect. The new version should be the version you currently use. So for example for version 12.1.20121.1005 :
<dependentAssembly>
<assemblyIdentity name="Infragistics.WebUI.Shared" publicKeyToken="7DD5C3163F2CD0CB" culture="neutral"/>
<bindingRedirect oldVersion="11.1.0.0-12.1.0.0" newVersion="12.1.20121.1005"/>
</dependentAssembly>
Same change needs to be applied to for the other two assemblies.
4) Update the tag prefixes for the retired controls so that they don’t contain version information. The non-retired control assemblies should have the correct version defined.
So for example.Declaration for a dll that isn’t retired:
<%@ Register assembly="Infragistics.Web, Version=12.1.20121.1005, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" namespace="Infragistics.Web.UI.GridControls" tagprefix="ig" %>
Declaration for a dll that is retired:
<%@ Register assembly="Infragistics.WebUI.UltraWebGrid" namespace="Infragistics.WebUI.UltraWebGrid" tagprefix="igtbl" %>
I’m attaching a sample for version 12.1.20121.1005. Please refer to it . If you’re using a newer service release please change all version references to point to your one and set the version free assemblies from your IG installation folder in the Bin.
I hope this was helpful. Let me know if you still encounter any issues or have any questions.