无法将类型 'ModelDetailView' 的对象强制转换为类型 'DevExpress.ExpressApp.ViewVariantsModule.IModelViewVariants'



我将View variables模块安装到我的XAF winforms 21.2.7项目中,它' '在我的机器上工作' ';

当我部署和运行时,我得到一个错误,以下调用堆栈记录在eXpressAppFramework.Log

Type:       InvalidCastException
Message:    Unable to cast object of type 'ModelDetailView' to type 'DevExpress.ExpressApp.ViewVariantsModule.IModelViewVariants'.
Data:       0 entries
Stack trace:
at DevExpress.ExpressApp.ViewVariantsModule.ModelVariantsProvider.GetVariants(String rootVariantViewId)
at 
DevExpress.ExpressApp.ViewVariantsModule.ReplaceViewIdHelper.factoryEvents_ViewCreating(Object sender, ViewCreatingEventArgs e)
at DevExpress.ExpressApp.ViewVariantsModule.XafApplicationViewsFactory.application_ViewCreating(Object sender, ViewCreatingEventArgs e)
at DevExpress.ExpressApp.XafApplication.OnViewCreating(ViewCreatingEventArgs args)
at DevExpress.ExpressApp.XafApplication.PrepareDetailViewCreatingEventArgs(IObjectSpace objectSpace, String detailViewID, Boolean isRoot, Object obj, Boolean isDelayedObjectLoading)
at DevExpress.ExpressApp.XafApplication.CreateDetailViewCore(IObjectSpace objectSpace, String detailViewID, Boolean isRoot, Object obj, Type objectType, Object objectKey, Boolean isDelayedObjectLoading, IEnumerable objectsToPrefetch)
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.XafApplication.CreateDetailView(IObjectSpace objectSpace, Object obj, View sourceView)
at DevExpress.ExpressApp.XafApplication.showLogonAction_OnCustomizePopupWindowParams(Object sender, CustomizePopupWindowParamsEventArgs args)
at DevExpress.ExpressApp.Actions.PopupWindowShowAction.GetPopupWindowParams()
at DevExpress.ExpressApp.Win.PopupWindowShowActionHelper.CreatePopupWindow(Boolean createAllControllers)
at DevExpress.ExpressApp.Win.WinApplication.DoLogon()
at DevExpress.ExpressApp.Win.WinApplication.Start()
InnerException is null

我可以通过打开应用程序的预览副本并登录来解决这个问题。

之后,我可以成功地使用应用程序。

或者我可以从用户漫游应用程序文件夹中删除文件ModulesVersionInfo以使应用程序成功打开

从应用程序文件夹中删除modelassembly.dll也可以解决这个问题。

从部署中删除ModelAssembly.Dll解决了这个问题。当应用程序打开时,dll将被正确创建。

最新更新