eXpandFramework / eXpand

DevExpress XAF (eXpressApp) extension framework. ๐—น๐—ถ๐—ป๐—ธ๐—ฒ๐—ฑ๐—ถ๐—ป.๐—ฒ๐˜…๐—ฝ๐—ฎ๐—ป๐—ฑ๐—ณ๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ.๐—ฐ๐—ผ๐—บ, ๐˜†๐—ผ๐˜‚๐˜๐˜‚๐—ฏ๐—ฒ.๐—ฒ๐˜…๐—ฝ๐—ฎ๐—ป๐—ฑ๐—ณ๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ.๐—ฐ๐—ผ๐—บ and ๐˜๐˜„๐—ถ๐˜๐˜๐—ฒ๐—ฟ @๐—ฒ๐˜…๐—ฝ๐—ฎ๐—ป๐—ฑ๐—ณ๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ and or simply ๐—ฆ๐˜๐—ฎ๐—ฟ/๐˜„๐—ฎ๐˜๐—ฐ๐—ต this repository and get notified from ๐—š๐—ถ๐˜๐—›๐˜‚๐—ฏ
http://expand.expandframework.com
Microsoft Public License
220 stars 114 forks source link

Need help debugging this issue #674

Closed vimarx closed 4 years ago

vimarx commented 4 years ago

When trying to edit web model in win app , now in 19.2.601.1, it fails to open with this exception. Why the web app is working anyway and this is failing to load in model editor?

thanks

3.02.20 16:51:48.231 no context SetupModules 13.02.20 16:51:48.957 no context Customize TypesInfo 13.02.20 16:51:49.160 no context <- ApplicationModulesManager.Load 13.02.20 16:51:49.160 no context TypesInfo: 1066 types, 11739 members 13.02.20 16:51:51.197 no context ================================================================================ The error occurred:

Type:       AggregateException
Message:    One or more errors occurred.
Data:       0 entries
Stack trace:

at Xpand.Utils.Helpers.Retry.Do[T](Func1 action, TimeSpan retryInterval, Int32 retryCount) at Xpand.Utils.Helpers.Retry.Do(Action action, TimeSpan retryInterval, Int32 retryCount) at Xpand.Persistent.Base.ModelDifference.ModelLoader.GetMasterModel(Boolean tryToUseCurrentTypesInfo, Action1 action) at Xpand.ExpressApp.ModelDifference.Win.PropertyEditors.ModelEditorPropertyEditor.GetMasterModelCore(Boolean recreate) at Xpand.ExpressApp.ModelDifference.Win.PropertyEditors.ModelEditorPropertyEditor.GetMasterModel(Boolean recreate) at Xpand.ExpressApp.ModelDifference.Win.PropertyEditors.ModelEditorPropertyEditor.OnCurrentObjectChanged() at DevExpress.ExpressApp.Editors.ViewItem.set_CurrentObject(Object value) at DevExpress.ExpressApp.ObjectView.InitializeItem(ViewItem item) at DevExpress.ExpressApp.CompositeView.AddItem(ViewItem item) at DevExpress.ExpressApp.CompositeView.LoadModelCore() at DevExpress.ExpressApp.View.LoadModel() at DevExpress.ExpressApp.View.SetModel(IModelView model) at Xpand.ExpressApp.ViewFactory.CreateDetailView(XafApplication xafApplication, String viewId, IObjectSpace objectSpace, Object obj, Boolean isRoot, Boolean enableDelayedObjectLoading) at Xpand.ExpressApp.SystemModule.XpandSystemModule.ApplicationOnDetailViewCreating(Object sender, DetailViewCreatingEventArgs args) at System.EventHandler`1.Invoke(Object sender, TEventArgs e) at DevExpress.ExpressApp.XafApplication.OnDetailViewCreating(DetailViewCreatingEventArgs args) at DevExpress.ExpressApp.XafApplication.CreateDetailView(IObjectSpace objectSpace, String detailViewID, Boolean isRoot, Object obj, Boolean isDelayedObjectLoading, IEnumerable objectsToPrefetch) at DevExpress.ExpressApp.XafApplication.CreateDetailView(IObjectSpace objectSpace, String detailViewID, Boolean isRoot, Object obj) at DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController.ShowObjectCore(Object obj, ShowViewParameters showViewParameters, XafApplication application, View sourceView, IObjectSpace objectSpace, IEnumerable objectsToPrefetch) at DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController.ProcessCurrentObject(SimpleActionExecuteEventArgs e) at DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController.processCurrentObjectAction_OnExecute(Object sender, SimpleActionExecuteEventArgs e) at DevExpress.ExpressApp.Actions.ActionBase.ExecuteCore(Delegate handler, ActionBaseEventArgs eventArgs)

InnerException:

        Type:       CannotCreateModelNodeByTypeException
        Message:    Cannot create model node by type 'DevExpress.ExpressApp.ReportsV2.Web.IModelReportDesignerViewItem'. The interface DevExpress.ExpressApp.ReportsV2.Web.IModelReportDesignerViewItem is not a model interface.
        Data:       0 entries
        Stack trace:

at DevExpress.ExpressApp.Model.Core.ModelNode.AddNodeCore(String id, Type type) at DevExpress.ExpressApp.Model.Core.ModelNode.AddNode[NodeType](String id) at DevExpress.ExpressApp.ReportsV2.Web.ReportsAspNetModuleV2.AddReportDesignerViewItem(IModelDetailView modelView) at DevExpress.ExpressApp.ReportsV2.Web.ReportsAspNetModuleV2.AddReportDesignerModelView(ModelNode node) at DevExpress.ExpressApp.Model.ModelNodesGeneratorBase.RunUpdaters(ModelNode node, Boolean enableModelCache) at DevExpress.ExpressApp.Model.Core.ModelNode.RunNodesGenerator(ModelNodesGeneratorBase generator) at DevExpress.ExpressApp.Model.Core.ModelNode.RunNodesGenerator() at DevExpress.ExpressApp.Model.Core.ModelNode.EnsureNodes(Boolean alwaysCreate) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodesCore() at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodes() at DevExpress.ExpressApp.Model.Core.ModelNode.GetNode(String id, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNode.GetNode(String id, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelValuePersistentPathCalculator.Calculate(ModelNode originalNode, String propertyName, Boolean runDefaultCalculator, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateModelValueByPathCalculator(ModelValuePersistentPathCalculator pathCalculator, String name, Int32 aspectIndex) at DevExpress.ExpressApp.Model.Core.ModelNode.GetModelValueInThisLayer(String name) at DevExpress.ExpressApp.Model.Core.ModelNode.GetValue(String name, Boolean inThisLayer, Int32 aspectIndex) at DevExpress.ExpressApp.Model.Core.ModelNode.CheckPersistentValues() at DevExpress.ExpressApp.Model.Core.ModelNode.IsValid(IModelApplication application) at DevExpress.ExpressApp.Model.Core.ModelNode.ValidateMasterNodesCore(Boolean validateNotLoaded) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodesCore() at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodes() at DevExpress.ExpressApp.Model.Core.ModelNode.GetSortedNodes(Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNode.GetSortedNodes(Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNodeList1.GetEnumerator() at DevExpress.ExpressApp.ApplicationModelManager.AddCustomMembersFromModelToTypeInfo(IModelApplication model) at DevExpress.ExpressApp.ApplicationModelManager.AddCustomMembersToTypeInfo(IModelApplication model) at DevExpress.ExpressApp.ApplicationModelManager.Setup(ITypesInfo typesInfo, IEnumerable1 boModelTypes, IEnumerable1 modules, IEnumerable1 controllers, IEnumerable1 applicationLocalizerTypes, IEnumerable1 applicationAspects, ModelStoreBase applicationModelDifferenceStore, String modelAssemblyFile) at DevExpress.ExpressApp.Model.Core.ModelApplicationHelper.CreateModel(ITypesInfo typesInfo, IEnumerable1 boModelTypes, IEnumerable1 modules, ControllersManager controllersManager, IEnumerable1 localizerTypes, IEnumerable1 aspects, String modelAssemblyFile, ModelStoreBase modelDifferenceStore) at Xpand.Persistent.Base.ModelDifference.ModelBuilder.BuildModel(XafApplication application, String configFileName, XpandApplicationModulesManager applicationModulesManager) at Xpand.Persistent.Base.ModelDifference.ModelLoader.GetMasterModelCore(Boolean rebuild) at Xpand.Persistent.Base.ModelDifference.ModelLoader.GetMasterModel(XafApplication xafApplication, Action1 action) at Xpand.Persistent.Base.ModelDifference.ModelLoader.<>c__DisplayClass12_0.<GetMasterModel>b__0() at Xpand.Utils.Helpers.Retry.<>c__DisplayClass0_0.<Do>b__0() at Xpand.Utils.Helpers.Retry.Do[T](Func1 action, TimeSpan retryInterval, Int32 retryCount) InnerException is null

apobekiaris commented 4 years ago

although this info is now not of much value as we do not have an exception in the Reports module. As far as I understand it loads fine but the model is incomplete. Check your web module there is a Application/ModulesList node does it have all your webmodules? what is populated there? screen shot

apobekiaris commented 4 years ago

check the log again is there an exception at all after model is shown?

emeyke commented 4 years ago

Also getting this when opening web model runtime

Type:       CannotCreateModelNodeByTypeException
Message:    Cannot create model node by type 'DevExpress.ExpressApp.ReportsV2.Web.IModelReportDesignerViewItem'. The interface DevExpress.ExpressApp.ReportsV2.Web.IModelReportDesignerViewItem is not a model interface.
Data:       0 entries
Stack trace:

at DevExpress.ExpressApp.Model.Core.ModelNode.AddNodeCore(String id, Type type) at DevExpress.ExpressApp.Model.Core.ModelNode.AddNode[NodeType](String id) at DevExpress.ExpressApp.ReportsV2.Web.ReportsAspNetModuleV2.AddReportDesignerViewItem(IModelDetailView modelView) at DevExpress.ExpressApp.ReportsV2.Web.ReportsAspNetModuleV2.AddReportDesignerModelView(ModelNode node) at DevExpress.ExpressApp.Model.ModelNodesGeneratorBase.RunUpdaters(ModelNode node, Boolean enableModelCache) at DevExpress.ExpressApp.Model.Core.ModelNode.RunNodesGenerator(ModelNodesGeneratorBase generator) at DevExpress.ExpressApp.Model.Core.ModelNode.RunNodesGenerator() at DevExpress.ExpressApp.Model.Core.ModelNode.EnsureNodes(Boolean alwaysCreate) at DevExpress.ExpressApp.Model.Core.ModelNode.GetNode(String id, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelValuePersistentPathCalculator.Calculate(ModelNode originalNode, String propertyName, Boolean runDefaultCalculator, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelValuePersistentPathCalculator.Calculate(ModelNode originalNode, String propertyName) at DevExpress.ExpressApp.Model.Core.ModelNodeInfo.GetDefaultValue(ModelNode node, String propertyName) at DevExpress.ExpressApp.Model.Core.ModelNode.b__328_0(String key) at DevExpress.ExpressApp.Model.Core.ModelNodeValuesCache.GetValue(ModelNode modelNode, String name, Func2 getValueMethod) at DevExpress.ExpressApp.Model.Core.ModelNode.GetDefaultValueCore(ModelValueInfo info, String name) at DevExpress.ExpressApp.Model.Core.ModelNode.GetValue[ValueType](IModelValue1 modelValue, String name, Int32 aspectIndex) at DevExpress.ExpressApp.Model.Core.ModelNode.GetValue[T](String name, Boolean inThisLayer, Int32 aspectIndex) at DevExpress.ExpressApp.Model.Core.ModelNode.GetValue[T](String name) at DevExpress.ExpressApp.SystemModule.NavigationItemNodeGenerator.GenerateNodesCore(ModelNode node) at DevExpress.ExpressApp.Model.ModelNodesGeneratorBase.GenerateNodes(ModelNode node) at DevExpress.ExpressApp.Model.Core.ModelNode.RunNodesGenerator(ModelNodesGeneratorBase generator) at DevExpress.ExpressApp.Model.Core.ModelNode.RunNodesGenerator() at DevExpress.ExpressApp.Model.Core.ModelNode.EnsureNodes(Boolean alwaysCreate) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodesCore() at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodes() at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodesCore() at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodes() at DevExpress.ExpressApp.Model.Core.ModelNode.GetNode(String id, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNode.GetNode(String id, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNodePersistentPathHelper.FindValueByPath(ModelNode modelNode, String persistentPath) at DevExpress.ExpressApp.Model.Core.ModelValuePersistentPathCalculator.Calculate(ModelNode originalNode, String propertyName, Boolean runDefaultCalculator, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateModelValueByPathCalculator(ModelValuePersistentPathCalculator pathCalculator, String name, Int32 aspectIndex) at DevExpress.ExpressApp.Model.Core.ModelNode.GetModelValueInThisLayer(String name) at DevExpress.ExpressApp.Model.Core.ModelNode.GetValue(String name, Boolean inThisLayer, Int32 aspectIndex) at DevExpress.ExpressApp.Model.Core.ModelNode.CheckPersistentValues() at DevExpress.ExpressApp.Model.Core.ModelNode.IsValid(IModelApplication application) at DevExpress.ExpressApp.Model.Core.ModelNode.ValidateMasterNodesCore(Boolean validateNotLoaded) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodesCore() at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodes() at DevExpress.ExpressApp.Model.Core.ModelNode.GetNode(String id, Boolean inThisLayer) at ModelApplication.get_BOModel() at Xpand.Persistent.Base.RuntimeMembers.RuntimeMemberBuilder.GetMembersEx(IModelApplication model) at Xpand.Persistent.Base.RuntimeMembers.RuntimeMemberBuilder.CreateRuntimeMembers(IModelApplication model) at Xpand.ExpressApp.ModelDifference.Win.PropertyEditors.ModelEditorPropertyEditor.CreateModelEditorController(String aspect) at Xpand.ExpressApp.ModelDifference.Win.Controllers.ModelEditorTemplateViewController.ProcessCurrentObjectActionOnExecute(Object sender, SimpleActionExecuteEventArgs e) at DevExpress.ExpressApp.Actions.SimpleActionExecuteEventHandler.Invoke(Object sender, SimpleActionExecuteEventArgs e) at DevExpress.ExpressApp.Actions.ActionBase.ExecuteCore(Delegate handler, ActionBaseEventArgs eventArgs) InnerException is null

apobekiaris commented 4 years ago

there are 2 possible reason for this exception

the ReportsV2 module is not in the requiredTypesModules A different version of the module is in that collection

according to previous posts on this thread @vimarx after cleaning his system/gac manage to run the app with no exceptions, although now he still see an incomplete module to my guess for another reason as there are no more exceptions.

Make sure u use the latest version on a clean GAC and use the snippet from https://github.com/eXpandFramework/eXpand/issues/674#issuecomment-589022376 to tell how many reportsV2 assemblies are loaded in your domain. Report their locations if more than one.

vimarx commented 4 years ago

I only found one versiรณn of the reports DLL, no clue of what os happening

apobekiaris commented 4 years ago

but u do not get the CannotCreateModelNodeByTypeException anymore so it is not about the Reports module anymore.

and u did not respond to my last 2 comments

although this info is now not of much value as we do not have an exception in the Reports module. As far as I understand it loads fine but the model is incomplete. Check your web module there is a Application/ModulesList node does it have all your webmodules? what is populated there? screen shot

.check the log again is there an exception at all after model is shown?

vimarx commented 4 years ago

it is strange, now, it runs fine inside VS , but the problems in the deployed app (same PC) but built in a different build server (same Xpand & DX assemblies)

the assemblies loaded are image

vimarx commented 4 years ago

@emeyke any advance?

emeyke commented 4 years ago

@vimarx Realized I am getting this https://github.com/eXpandFramework/eXpand/issues/681 so decided to see how it looks when it is fixed.

vimarx commented 4 years ago

but u do not get the CannotCreateModelNodeByTypeException anymore so it is not about the Reports module anymore.

and u did not respond to my last 2 comments

although this info is now not of much value as we do not have an exception in the Reports module. As far as I understand it loads fine but the model is incomplete. Check your web module there is a Application/ModulesList node does it have all your webmodules? what is populated there? screen shot

.check the log again is there an exception at all after model is shown?

image image

apobekiaris commented 4 years ago

it is strange, now, it runs fine inside VS , but the problems in the deployed app (same PC) but built in a different build server (same Xpand & DX assemblies)

all these are in GAC? do a .Select(a=>a.Location) at the end and provide the screenshot? Did u clean your gac manually from any left overs after the GAC patch i posted?

apobekiaris commented 4 years ago

681 does not look releated to this case, here the AppDomain contains invalid entries, I will also suggest you test your solution in a different clean machine to verify if the problem persists there.

vimarx commented 4 years ago

in my case, duplicates are ... 26.02.20 17:27:38.728 no context c:\test\vxerp\ModelMapperAssemblyWin.dll 26.02.20 17:27:38.728 no context c:\test\vxerp\ModelMapperAssemblyWin.dll 26.02.20 17:27:38.728 no context c:\test\vxerp\ModelMapperAssemblyWeb.dll 26.02.20 17:27:38.728 no context c:\test\vxerp\ModelMapperAssemblyWeb.dll

apobekiaris commented 4 years ago

where does this list comes from?

apobekiaris commented 4 years ago

I will also suggest you test your solution in a different clean machine to verify if the problem persists there.

vimarx commented 4 years ago

in several differents vm, it is from your snippet https://github.com/eXpandFramework/eXpand/issues/681#issuecomment-591215483

I always get this duplicates

7.02.20 18:50:49.764 no context Begin assemblies dump------ 27.02.20 18:50:49.764 no context C:\test\vxerp\ModelMapperAssemblyWin.dll 27.02.20 18:50:49.764 no context C:\test\vxerp\ModelMapperAssemblyWin.dll 27.02.20 18:50:49.764 no context C:\test\vxerp\ModelMapperAssemblyWeb.dll 27.02.20 18:50:49.764 no context C:\test\vxerp\ModelMapperAssemblyWeb.dll 27.02.20 18:50:49.764 no context End Dump------

apobekiaris commented 4 years ago

although I fail to understand how is possible to have an assembly of the same location into your domain I can attempt a workaround, wait for my patch

apobekiaris commented 4 years ago

can u also provide the stacktrace for each assembly loaded

int i = 0;
            AppDomain.CurrentDomain.AssemblyLoad += (sender, args) => {

                if (args.LoadedAssembly.GetName().Name.StartsWith("ModelMapperAssembly")){
                    Tracing.Tracer.LogSeparator($"{Path.GetFileName(args.LoadedAssembly.Location)}{i}");
                    Tracing.Tracer.LogText(args.LoadedAssembly.Location);
                    Tracing.Tracer.LogText(Environment.StackTrace);
                    i++;
                }
            };

in your program.cs first thing

vimarx commented 4 years ago

Here is the log (I only try to open web model once) eXpressAppFramework.zip

emeyke commented 4 years ago

I do not get the duplicates but I am still getting the dreaded Type: CannotCreateModelNodeByTypeException Message: Cannot create model node by type 'DevExpress.ExpressApp.ReportsV2.Web.IModelReportDesignerViewItem'. The interface DevExpress.ExpressApp.ReportsV2.Web.IModelReportDesignerViewItem is not a model interface.

apobekiaris commented 4 years ago

in the last log @vimarx provided there is an extra / in the ModelMapperAssembly path and this should result in double loading, I will provide a pacth for it soon.

@emeyke can you please search your disks for ModelMapperAssembly*.dll and report thier paths

expand commented 4 years ago

The pre-release 2.201.0.1 in the DevExpress.XAF lab branch includes commits that relate to this task:

Released packages:

  1. Xpand.XAF.Core.All
    1. [Xpand.XAF.Modules.ModelMapper v.2.201.9.2]()
    2. Xpand.XAF.Web.All
    3. Xpand.XAF.Win.All

Please update the related Nuget packages and test if issues is addressed. These are nightly nuget packages available only from our NugetServer.

If you do not use these packages directly but through a module of the main eXpandFramework project, please wait for the bot to notify you again when integration is finished or update the related packages manually.

Thanks a lot for your contribution.

expand commented 4 years ago

eXpand.lab release 19.2.601.14 includes commit that relate to this task:

Please test if it addresses the problem. If you use nuget add our LAB NugetServer as a nuget package source in VS.

Thanks a lot for your contribution.

vimarx commented 4 years ago

nothing changes in 19.2.602.1 (still double loads and the CannotCreateModelNodeByTypeException issue

attached log for your verification (it contains assemblies loading stacks traces as before) eXpressAppFramework.zip

apobekiaris commented 4 years ago

i see the double \ is still there i have to reexamine the patch

ModelMapperAssemblyWin, Version=2.201.9.2, Culture=neutral, PublicKeyToken=null, Location=c:\test\vxerp\\ModelMapperAssemblyWin.dll
    ModelMapperAssemblyWin, Version=2.201.9.2, Culture=neutral, PublicKeyToken=null, Location=c:\test\vxerp\ModelMapperAssemblyWin.dll
emeyke commented 4 years ago

And I am now getting this when trying to open any model

at Xpand.Persistent.Base.General.ModelNodeExtensions.d0.MoveNext() in D:\a\1\s\Xpand\Xpand.Persistent\Xpand.Persistent.Base\General\ModelExtensions.cs:line 26 at System.Linq.Enumerable.d951.MoveNext() at System.Linq.Enumerable.First[TSource](IEnumerable1 source) at Xpand.ExpressApp.Win.PropertyEditors.RichEdit.RichEditWinPropertyEditor..ctor(Type objectType, IModelMemberViewItem model) in D:\a\1\s\Xpand\Xpand.ExpressApp\Xpand.ExpressApp.Win\PropertyEditors\RichEdit\RichEditWinPropertyEditor.cs:line 40 InnerException is null

vimarx commented 4 years ago

For me only happens in User models

InnerException:

        Type:       InvalidCastException
        Message:    No se puede convertir un objeto de tipo 'DevExpress.ExpressApp.Win.Editors.LargeStringEdit' al tipo 'Xpand.ExpressApp.Win.PropertyEditors.RichEdit.RichEditContainerBase'.
        Data:       0 entries
        Stack trace:

en Xpand.ExpressApp.ModelDifference.Win.Controllers.Xpand.ExpressApp.ModelDifference.Win.Controllers.XmlContentValidationController.PropertyEditorOnControlCreated(Object sender, EventArgs eventArgs) en System.EventHandler`1.Invoke(Object sender, TEventArgs e) en DevExpress.ExpressApp.Editors.ViewItem.OnControlCreated() en DevExpress.ExpressApp.Win.Editors.DXPropertyEditor.OnControlCreated() en DevExpress.ExpressApp.Win.Layout.WinLayoutManager.controlItem_QueryControl(Object sender, QueryControlEventArgs e) en DevExpress.ExpressApp.Win.Layout.XafLayoutControlItem.RaiseQueryControl() en DevExpress.ExpressApp.Win.Layout.XafLayoutControlItem.EnsureControl() en DevExpress.ExpressApp.Win.Layout.XafLayoutControlItem.RaiseShowHide(Boolean visible) en DevExpress.XtraLayout.BaseLayoutItem.SetVisible(Boolean lVisible) en DevExpress.XtraLayout.LayoutGroup.UpdateChild(BaseLayoutItem item, Boolean visible) en DevExpress.XtraLayout.LayoutGroup.UpdateChildren(Boolean visible) en DevExpress.XtraLayout.LayoutGroup.UpdateChild(BaseLayoutItem item, Boolean visible) en DevExpress.XtraLayout.LayoutGroup.UpdateChildren(Boolean visible) en DevExpress.XtraLayout.LayoutGroup.UpdateChild(BaseLayoutItem item, Boolean visible) en DevExpress.XtraLayout.LayoutGroup.UpdateChildren(Boolean visible) en DevExpress.XtraLayout.LayoutControlImplementor.UpdateRoot() en DevExpress.XtraLayout.LayoutControlImplementor.InvalidateRootOffsetControlsAndScrolls() en DevExpress.XtraLayout.LayoutControlImplementor.Invalidate() en DevExpress.XtraLayout.LayoutGroup.Invalidate() en DevExpress.XtraLayout.LayoutItemContainer.EndUpdate() en DevExpress.XtraLayout.LayoutItemContainer.EndChangeUpdate() en DevExpress.XtraLayout.LayoutControlImplementor.ProcessLookAndFeelStyleChanged() en DevExpress.XtraLayout.LayoutControlImplementor.EndInitCore() en DevExpress.XtraLayout.LayoutControlImplementor.set_UpdatedCount(Int32 value) en DevExpress.ExpressApp.Win.Layout.WinLayoutManager.LayoutControls(IModelNode layoutNode, ViewItemsCollection viewItems) en DevExpress.ExpressApp.View.CreateControls() en DevExpress.ExpressApp.Win.Templates.ViewSiteManager.EnsureViewControl() en DevExpress.ExpressApp.Win.Templates.ViewSiteManager.FillViewSite() en DevExpress.ExpressApp.Win.Templates.ViewSiteManager.OnViewChanged() en DevExpress.ExpressApp.Win.Templates.XtraFormTemplateBase.SetView(View view) en DevExpress.ExpressApp.Frame.SetTemplateView(View view) en DevExpress.ExpressApp.Frame.SetView(View view, Boolean updateControllers, Frame sourceFrame, Boolean disposeOldView) InnerException is null

apobekiaris commented 4 years ago

my guess is that the latest exception thrown for @vimarx is about not using the default RichEditWinPropertyEditor for the XmlContent property, so I modified the XmlContentValidationController to avoid it in the next minor.

@emeyke although you seem to use the editor but in your case the model is not extended and does not have the related node, so it is not clear what might be wrong, maybe a side effect.

image

expand commented 4 years ago

The pre-release 2.201.0.2 in the DevExpress.XAF lab branch includes commits that relate to this task:

Released packages:

  1. Xpand.Extensions v.2.201.9.1
    1. Xpand.Extensions.Mono.Cecil v.2.201.9
    2. Xpand.Extensions.Reactive v.2.201.9.1
    3. Xpand.Extensions.XAF v.2.201.9.2
    4. Xpand.Extensions.XAF.Xpo v.2.201.9
    5. Xpand.XAF.Core.All v.2.201.25.3
    6. Xpand.XAF.Modules.AutoCommit v.2.201.9.1
    7. Xpand.XAF.Modules.CloneMemberValue v.2.201.9.2
    8. Xpand.XAF.Modules.CloneModelView v.2.201.9.1
    9. Xpand.XAF.Modules.GridListEditor v.2.201.9.1
    10. Xpand.XAF.Modules.HideToolBar v.2.201.9.1
    11. Xpand.XAF.Modules.MasterDetail v.2.201.9.1
    12. Xpand.XAF.Modules.ModelMapper v.2.201.9.4
    13. Xpand.XAF.Modules.ModelViewInheritance v.2.201.9.1
    14. Xpand.XAF.Modules.OneView v.2.201.9.1
    15. Xpand.XAF.Modules.ProgressBarViewItem v.2.201.9.1
    16. Xpand.XAF.Modules.Reactive v.2.201.9.2
    17. Xpand.XAF.Modules.Reactive.Logger v.2.201.9.2
    18. Xpand.XAF.Modules.Reactive.Logger.Client.Win v.2.201.9.1
    19. Xpand.XAF.Modules.Reactive.Logger.Hub v.2.201.9.1
    20. Xpand.XAF.Modules.Reactive.Win v.2.201.9.1
    21. Xpand.XAF.Modules.RefreshView v.2.201.9.1
    22. Xpand.XAF.Modules.SuppressConfirmation v.2.201.9.1
    23. Xpand.XAF.Modules.ViewEditMode v.2.201.9.1
    24. Xpand.XAF.Web.All v.2.201.25.3
    25. Xpand.XAF.Win.All v.2.201.25.3

Please update the related Nuget packages and test if issues is addressed. These are nightly nuget packages available only from our NugetServer.

If you do not use these packages directly but through a module of the main eXpandFramework project, please wait for the bot to notify you again when integration is finished or update the related packages manually.

Thanks a lot for your contribution.

expand commented 4 years ago

eXpand.lab release 19.2.602.2 includes commit that relate to this task:

Please test if it addresses the problem. If you use nuget add our LAB NugetServer as a nuget package source in VS.

Thanks a lot for your contribution.

vimarx commented 4 years ago

now there is no double loading, but the interface issue stills there. In the logs are also logged first chance exception info eXpressAppFramework.zip

apobekiaris commented 4 years ago

i cannot say why without reproducing it, you can try strip your solution to a point that you can share or you can consider another sponsoring tier with private support and share in private.

To strip your solution you can remove all your BO and controllers and you leave XPand + DX module registration. Fair chance you can repro with it and u can share that solution. Since u said that you were able to repro it in a clean VM I should be able to repro it as well.

Other options u have is to understand the loading

for example after the log is written for the exception you can list all types

var types = AppDomain.CurrentDomain.GetAssemblies().SelectMany(assembly => {
                try{
                    return assembly.GetTypes().Where(type => type.Name == "IModelReportDesignerViewItem");
                }
                catch (Exception e){
                    return Enumerable.Empty<Type>();
                }
            }).ToArray()

if the types array contain more than one entries examine the assemblies, expect

type[0].Assembly!=type[1].Assembly

see the assembly locations they shouldn't and if u have results or u need help feel free to post back. At the moment I consider this thing Enviromental at project specific rather than framework bug.

vimarx commented 4 years ago

I found a workaround! @emeyke I had to implement a fake class that implements the missing interface from DevExpress.ExpressApp.ReportsV2.Web.v19.2) in my WIN app and added it to AdditionalExportedTypes and it works! @apobekiaris

apobekiaris commented 4 years ago

great to hear!

does your model still looks like

image

or was that treated together with the duplicate assemblies?

apobekiaris commented 4 years ago

that was a sock i though both images was one some kind of nested model black magic but apparently they are not. This node is looks fine.

vimarx commented 4 years ago

great to hear!

does your model still looks like

image

or was that treated together with the duplicate assemblies?

the model Picture is the same and I have not changed anything regarding duplicate assemblies (only added logging code as you requested (with no luck)

expand commented 4 years ago

Issue is deprioritized as no Assignee found and scheduled for auto-close if no activity in the next 60 days. Thanks a lot for your contribution.

expand commented 4 years ago

eXpand.lab release 19.2.602.4 includes commit that relate to this task:

Please test if it addresses the problem. If you use nuget add our LAB NugetServer as a nuget package source in VS.

Thanks a lot for your contribution.

expand commented 4 years ago

Closing issue for age. Feel free to reopen it at any time.

.Thank you for your contribution.