I just upgraded Telerik Reporting to Q3 2009 (version 3.2.9.1211), and now I receive an error whenever I try to open a report in design mode in Visual Studio 2008:
Type 'Telerik.Reporting.Drawing.Unit' does not have a constructor with parameters of types Double, UnitType.
Granted, I am new to Telerik Reporting, but the code hasn’t changed, and it still works fine with Telerik Reporting Q2 2009. It looks to me like the new version still does have a constructor with that signature, and my reports do indeed compile and run just fine. Unfortunately, I can’t open them to edit them.
This is the call stack it gives me:
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeInstance(IDesignerSerializationManager manager, Type type, Object[] parameters, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.ComponentCodeDomSerializer.DeserializeInstance(IDesignerSerializationManager manager, Type type, Object[] parameters, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializePropertyAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement, CodePropertyReferenceExpression propertyReferenceEx, Boolean reportError)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement)
I tried the "Ignore and Continue" option, but that just gives me another error. Does anyone have any clue as to what I may have done wrong, or what I can do to correct this problem? Thank you very much.
Shaun
8 Answers, 1 is accepted
<
metadata
name
=
"$this.SnapGridSize"
type
=
"Telerik.Reporting.Drawing.Unit, Telerik.Reporting, Version=3.2.9.1211, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"
>
<
value
>0.10in</
value
>
</
metadata
>
</
root
>
Shaun
Generally the Upgrade Wizard takes care of updating all references including the .resx files, so it is very strange that this did not work for you. Have you by any chance tried updating your projects manually? If this is the case then as duly noted in the Upgrading to a Newer Version of Telerik Reporting article, you should update resx files as well, as you have found the hard way.
Best wishes,
Steve
the Telerik team
I did run the upgrade wizard. My project is a little convoluted as the data object comes from another project and the two projects together are then used in a Unit testing project and finally incorporated into a Windows Service (parts of that shouldn't matter at all). Here is the event object in the XML from the UpgradeWizardLog.xml:
<
event
action
=
"Analyze"
type
=
"Error"
name
=
"Report1.resx"
path
=
"D:\Source\Projects\EnrollmentReportNew\EnrollmentReportNew\Report1.resx"
>System.Runtime.Serialization.SerializationException: Type could not be read from the data in line 305, position 5. The type's internal structure may have changed. Either implement ISerializable on the type or provide a type converter that can provide a more reliable conversion format, such as text or an array of bytes. The conversion exception was: No top object. ---> System.Xml.XmlException: Type could not be read from the data in line 305, position 5. The type's internal structure may have changed. Either implement ISerializable on the type or provide a type converter that can provide a more reliable conversion format, such as text or an array of bytes. The conversion exception was: No top object. Line 305, position 5. ---> System.Runtime.Serialization.SerializationException: No top object.
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at System.Resources.ResXDataNode.GenerateObjectFromDataNodeInfo(DataNodeInfo dataNodeInfo, ITypeResolutionService typeResolver)
at System.Resources.ResXDataNode.GetValue(ITypeResolutionService typeResolver)
at System.Resources.ResXResourceReader.ParseDataNode(XmlTextReader reader, Boolean isMetaData)
at System.Resources.ResXResourceReader.ParseXml(XmlTextReader reader)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Resources.ResXResourceReader.ParseXml(XmlTextReader reader)
at System.Resources.ResXResourceReader.EnsureResData()
at System.Resources.ResXResourceReader.GetEnumerator()
at Telerik.Reporting.UpgradeWizard.Engine.Utilities.ResourceFile..ctor(String fileName)
at Telerik.Reporting.UpgradeWizard.Engine.ResourceItem.AnalyzeInternal()
at Telerik.Reporting.UpgradeWizard.Engine.UpgradeItem.Analyze()</
event
>
If you want me to, I'll open a ticket and I can get the pre-upgrade file from source control. Given that you appear to have a very limited # of people with this issue, the XML in the resx file appears to be corrupt (just my observation from scanning the stack here), etc. It may not be worth the effort until/unless more people encounter this issue.
Could you, please, open a support ticket for that problem and send us the 'corrupt' RESX file that the wizard fails to upgrade. Any additional information that you find relevant to this matter will be greatly appreciated.
Regards,
Ivan
the Telerik team
I corrected the issue by running the upgrade wizard once again.