We are converting existing projects with Infragistics WPF 12.2 assembly references to .NET4.5.
I cannot get VS2012 or Blend CTP 2 Update 2 to display any IG controls in the designer after changing to .NET 4.5. Projects build and run correctly.
Designer shows errors similar to:
"Object of type Jnfragistics.Windows.Themes.RibbonGeneric+ Locator cannot be converted to type Infragistics.Windows.Themes.ResourceSetLocator."
Virtually every IG control will display this error in the designer where the theme assembly is specific to the control type throwing the error.
Our Infragistics dlls are from the CLR4.0 folder. I see there is also a "Version Free" folder. Do I need to change my references to the "Version Free" dlls?
I have confirmed that all projects in the solution are targeting .NET 4.5 and they all build and run correctly. I just can't get the WYSIWYG designer to show Infragistics controls.
Hello,
Thank you for your post I have been looking into it and this doesn’t seem to be a known issue, so could you please send an isolated sample project, where this is reproduced, and steps to reproduce, so I can investigate it further for you.
Looking forward for your reply.
I am still trying to work through this conversion to .NET 4.5. I cannot create a sample project to recreate. All Infragistics controls will not render in the designer in VS2012 or Blend CTP2 Update2. Here are examples of the errors:
Exception: The component 'Infragistics.Windows.Design.SmartTagFramework.SmartButtonAdorner' does not have a resource identified by the URI '/InfragisticsWPF.Design.VS2012;component/smarttagframework/smartbuttonadorner.xaml'.
and
Method not found:Infragistics.Windows.Themes.ResourceSetLocator Infragistics.Windows.Themes.EditorsResourceSet'1.get_Location()
The rest of the view is rendered, but the designer cannot render any Infragistics controls.
Any suggestions you have to help me resolve these issues would be appreciated. All of the projects rendered views correctly when the projects were on .NET 4
are these messages indicating that some helper design.dll or design.VS2012.dll is missing or corrupted?
It would also help to get a list of what is in the Debug->Windows->Modules. Almost sounds like multiple instances of one or more Infragistics assemblies or perhaps mismatched versions are loaded into memory.
Thanks Andrew and Alan,
A also have been suspecting that so I am going through and reconfirming all the project references are to the same Infragistics dlls and are built on those and that any projects dlls are rebuilt with those references and that the project platforms are consistent across all projects. Alan, I will try to get the call stack using the technique you describe in the link next week.
Debug Modules window shows only Infragistics version-free assemblies loaded. Also, this is a design time error. Runtime, everything seems fine. I am just focused on getting the VS and Blend designers working... so I can get back to building the app :)
From the VS2012 Designer, here is the full stack trace:
Exception: Cannot create an instance of "XamRibbon".
at Microsoft.Expression.Platform.InstanceBuilders.InstanceBuilderOperations.InstantiateType(Type type, Boolean supportInternal)
at Microsoft.Expression.Platform.InstanceBuilders.ClrObjectInstanceBuilder.InstantiateTargetType(IInstanceBuilderContext context, ViewNode viewNode)
at Microsoft.Expression.Platform.InstanceBuilders.ClrObjectInstanceBuilder.Instantiate(IInstanceBuilderContext context, ViewNode viewNode)
at Microsoft.Expression.WpfPlatform.InstanceBuilders.FrameworkElementInstanceBuilder.Instantiate(IInstanceBuilderContext context, ViewNode viewNode)
at Microsoft.Expression.Platform.InstanceBuilders.ViewNodeManager.CreateInstance(IInstanceBuilder builder, ViewNode viewNode)
TargetInvocationException: Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
XamlObjectWriterException: Set property 'Infragistics.Windows.Themes.ResourceSetLoader.Locator' threw an exception.
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(Object inst, XamlMember property, Object value)
at MS.Internal.Xaml.Runtime.PartialTrustTolerantRuntime.SetValue(Object obj, XamlMember property, Object value)
at System.Xaml.XamlObjectWriter.Logic_ApplyPropertyValue(ObjectWriterContext ctx, XamlMember prop, Object value, Boolean onParent)
at System.Xaml.XamlObjectWriter.Logic_DoAssignmentToParentProperty(ObjectWriterContext ctx)
at System.Xaml.XamlObjectWriter.Logic_AssignProvidedValue(ObjectWriterContext ctx)
at System.Xaml.XamlObjectWriter.WriteEndMember()
at System.Xaml.XamlWriter.WriteNode(XamlReader reader)
at System.Xaml.XamlServices.Transform(XamlReader xamlReader, XamlWriter xamlWriter, Boolean closeWriter)
at System.Xaml.XamlServices.Transform(XamlReader xamlReader, XamlWriter xamlWriter)
at System.Windows.SystemResources.ResourceDictionaries.LoadDictionary(Assembly assembly, String assemblyName, String resourceName, Boolean isTraceEnabled)
at System.Windows.SystemResources.ResourceDictionaries.LoadGenericDictionary(Boolean isTraceEnabled)
at System.Windows.SystemResources.FindDictionaryResource(Object key, Type typeKey, ResourceKey resourceKey, Boolean isTraceEnabled, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, Boolean& canCache)
at System.Windows.SystemResources.FindResourceInternal(Object key, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference)
at System.Windows.FrameworkElement.FindResourceInternal(FrameworkElement fe, FrameworkContentElement fce, DependencyProperty dp, Object resourceKey, Object unlinkedParent, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, DependencyObject boundaryElement, Boolean isImplicitStyleLookup, Object& source)
at System.Windows.ResourceReferenceExpression.GetRawValue(DependencyObject d, Object& source, DependencyProperty dp)
at System.Windows.ResourceReferenceExpression.GetValue(DependencyObject d, DependencyProperty dp)
at System.Windows.DependencyObject.EvaluateBLOCKED EXPRESSION
I tried the technique described in Alan's link, attaching a second instance of VS to the project instance. I did not get any additional trace information. This exception was thrown several dozen times as VS tried to render the view in the designer:
The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
There were no additional details in the exception.
I used the same technique to attach to Blend and got the same stack as posted earlier with this exception also being thrown once for each TabItem in the RibbonTabs collection:
System.ArgumentException occurred HResult=-2147024809 Message=The value "Microsoft.Expression.Platform.InstanceBuilders.FallbackControl" is not of type "Infragistics.Windows.Ribbon.RibbonTabItem" and cannot be used in this generic collection.Parameter name: value Source=mscorlib ParamName=value StackTrace: at System.ThrowHelper.ThrowWrongValueTypeArgumentException(Object value, Type targetType) InnerException:
Can you post the contents of the Debug->Windows->Modules? Specifically I want to see which assemblies are loaded, their paths and what versions they are but there might be other useful information in there as well.
yes, thank you all for your help.
If I read your last update correctly you have resolved the designer issue and this is now working correctly.
Please let us know if we can be of any further assistance.
ugh, apparently somewhere along the line some references to our own assemblies got corrupted and/or there was a custom converter throwing an exception that never appeared in any of the stack traces we were looking at and didn't happen before the switch to .NET4.5... Why IG was blowing up the designer because of these.. I will probably never know.
Thank you for YOUR patience.
Interestingly there are also multiple instances of your assemblies in memory which I'm guessing is why there are multiple instances of our assemblies. So for example I see that 2 Asset.Resources assemblies are loaded - which while they have the same version number seem to have different dates (1 from 3/15 and another from 3/18). In other cases (e.g. MVVM.Markup) I see 3 copies of your assemblies loaded. I suspect if you correct that then the designer issue will go away.
I've got nothing but patience now. Thanks for your help.
I have attached to XDesProc and added that Module output to the spreadsheet attached.
Definitely seeing 2-3 instances of many but not all IG assemblies. They all seem to be the version-free assemblies and the correct version 12.2.20122.2089.
It seems that where some are referenced 3 times, the VS2012.dll verison is only referenced twice. I don't know if that is a tell or not.
InfragisticsWPF.Editors.dll