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://ko.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,
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.
Best Regards,
Maya Kirova
Developer Support Engineer
Infragistics, Inc.
http://ko.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 ,
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.
Hi Maya, thanks for your information
Finally we have managed to make everything work, but not following the 'standard instructions'. Just in case someone lands here looking for answers I will explain how we have done it.
1. We have include all the references in the pages (Including to 12.1 dlls) referencing 'version free' dlls. For example
<%@ register="" assembly="Infragistics.Web" namespace="Infragistics.Web.UI.GridControls" tagprefix="ig"><%@ register="" assembly="Infragistics.Web" namespace="Infragistics.Web.UI.DataSourceControls" tagprefix="ig"><%@ register="" assembly="Infragistics.WebUI.UltraWebNavigator, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" namespace="Infragistics.WebUI.UltraWebNavigator" prefix="ignav"><%@ register="" assembly="Infragistics.WebUI.Documents.Excel, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" namespace="Infragistics.Web.UI.DataSourceControls" tagprefix="ig">
Mixing version free references to 11.1 dlls and versioned references to 12.1 finished always for us in runtime errors.
2. At the web.config, no references to infragistics controls in section.Each time we tried to aggregate all the references in the web.config compile or runtime conflicts appeared.
3. Of course, at /bin diretory only version free dlls
4. Runtime section. If is useful for somebody, it works for us <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.1.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.1.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.1.20121.2072"/> </dependentAssembly> </assemblyBinding> </runtime>
I dont know why using the 'official instructions' didnt work for us, but with this configuration compile and work in all the development, test and production environments we have tried for now.
endaliadev,
I applaud you for figuring this out. I am having a little trouble following all of the details above and ending up with a project that will compile. Is there any way that you could zip up the config file and a couple of .aspx files (using old and new controls) so that I could see the complete finished project?
Also, in your point (3) above, when you say "Of course, at /bin diretory only version free dlls", are you talking about the placement of BOTH versions version-free dll's?
Sorry to ask questions after you have most likely spent a great deal of time on this, but it would be most helpful to see how your final code looks.
Thank you.
Lynn
Just a few notes that may help others..
I badly needed to get the site upgraded to 12.2, but I still have a number of UltraWebGrids that will take time to upgrade. Plus, I need the new capabilities of the WebDataGrid (multi-column headers, cell merging, etc) to complete these upgrades.
I could not get 12.2 and 11.1 versionless assemblies to live together. Evidently, the 12.2 Shared assembly, even the versionless one, is not compatible with the 11.1 versionless controls. Here is what I did:
Here is the list of dlls that I put in my bin folder:
Here are my web.config assembly references:
<assemblies> <add assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7DD5C3163F2CD0CB"/> <add assembly="Infragistics4.WebUI.Documents.Reports.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7DD5C3163F2CD0CB"/> <add assembly="Infragistics4.WebUI.Documents.Excel.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7DD5C3163F2CD0CB"/> <add assembly="Infragistics4.WebUI.Documents.Word.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7DD5C3163F2CD0CB"/> <add assembly="Infragistics4.WebUI.Documents.IO.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7DD5C3163F2CD0CB"/> </assemblies>
Here are my web.config control tags:
<controls> <add tagPrefix="ig" namespace="Infragistics.Web.UI" assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"/> <add tagPrefix="ig" namespace="Infragistics.Web.UI.GridControls" assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"/> <add tagPrefix="ig" namespace="Infragistics.Web.UI.LayoutControls" assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"/> <add tagPrefix="ig" namespace="Infragistics.Web.UI.DataSourceControls" assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"/> <add tagPrefix="ig" namespace="Infragistics.Web.UI.NavigationControls" assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"/> <add tagPrefix="ig" namespace="Infragistics.Web.UI.EditorControls" assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"/> <add tagPrefix="ig" namespace="Infragistics.Web.UI.ListControls" assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"/> <add tagPrefix="ig" namespace="Infragistics.Web.UI.DisplayControls" assembly="Infragistics4.Web.v12.2, Version=12.2.20122.1007, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"/>
<add tagPrefix="igtxt" namespace="Infragistics.WebUI.WebDataInput" assembly="Infragistics.WebUI.WebDataInput" /> <add tagPrefix="igtbl" namespace="Infragistics.WebUI.UltraWebGrid" assembly="Infragistics.WebUI.UltraWebGrid"/> <add tagPrefix="ighedit" namespace="Infragistics.WebUI.WebHtmlEditor" assembly="Infragistics.WebUI.WebHtmlEditor"/> <add tagPrefix="igmisc" namespace="Infragistics.WebUI.Misc" assembly="Infragistics.WebUI.Misc"/> <add tagPrefix="igchart" namespace="Infragistics.WebUI.UltraWebChart" assembly="Infragistics.WebUI.UltraWebChart"/> <add tagPrefix="igchartprop" namespace="Infragistics.UltraChart.Resources.Appearance" assembly="Infragistics.WebUI.UltraWebChart"/> <add tagPrefix="igchartdata" namespace="Infragistics.UltraChart.Data" assembly="Infragistics.WebUI.UltraWebChart"/> <!--<add tagPrefix="igtblexp" namespace="Infragistics.WebUI.UltraWebGrid.ExcelExport" assembly="Infragistics.WebUI.UltraWebGrid.ExcelExport"/>--> <add tagPrefix="igcmbo" namespace="Infragistics.WebUI.WebCombo" assembly="Infragistics.WebUI.WebCombo"/> <add tagPrefix="igsch" namespace="Infragistics.WebUI.WebSchedule" assembly="Infragistics.WebUI.WebDateChooser"/> <add tagPrefix="iglbar" namespace="Infragistics.WebUI.UltraWebListBar" assembly="Infragistics.WebUI.UltraWebListBar"/> <add tagPrefix="igtbar" namespace="Infragistics.WebUI.UltraWebToolBar" assembly="Infragistics.WebUI.UltraWebToolBar"/> <add tagPrefix="igtab" namespace="Infragistics.WebUI.UltraWebTab" assembly="Infragistics.WebUI.UltraWebTab"/> <add tagPrefix="ignav" namespace="Infragistics.WebUI.UltraWebNavigator" assembly="Infragistics.WebUI.UltraWebNavigator"/>
</controls>
This works. I have 12.2 Aikido controls, and most of the legacy controls living nicely side-by-side.
There are several unresolved issues with this approach... the primary one being that I had to remove all instances of the UltraWebGrid Excel Exporter from the project. I could not figure out how to get the project to compile with it. I tried using the versionless assemblies, runtime bindings, and all the rest to get the 11.1 and 12.2 versionless assemblies to work together, but nothing worked. If somebody from Infragistics could chime in here and let me know what I would need to change, I would be very appreciative.
Still, the upgrade from legacy controls to Aikido controls is now much less daunting, since I can now upgrade one page at a time, with all of the new WebDataGrid features at my disposal.