ormsolutions / NORMA

Core code for Natural Object-Role Modeling Architect, a Visual Studio extension for ORM modeling.
Other
43 stars 18 forks source link

Opening an older version ORM file causes crash. #23

Open jpwijbenga opened 5 years ago

jpwijbenga commented 5 years ago

The solution and orm file were built in VS 2015 with NORMA version 2015-09 CTP from Sourceforge. No projects only one .orm file as a solution item.

Loading the attached files into a bare install of VS2019 CE should lead to reproducing the problem. I selected none of the features, just the bare core, with just the NORMA extension installed on top of this,

norma-issue.zip Screenshot of exception message: afbeelding

Likely I missed some (years of) breaking changes? Is there a migration script?

mcurland commented 5 years ago

I'm getting a clean open on this file (5 fact types, 5 object types). I'd like to know more of your callstack though. Are you able to create a new .orm file, or is this causing problems as well? A couple of things to try:

1) What happens if you just hit Ignore? Does the file continue to open? Can you see the issue? 2) (Trying to verify the installation here). If you open up another Visual Studio instance and attach a debugger to 'devenv.exe' a) Go to the Modules Window (Debug/Windows/Modules) b) Sort by Name c) Scroll down to find all of the ORMSolutions modules d) Select the ORMSolutions rows and copy. This will give you all of the file information from the installation.

jpwijbenga commented 5 years ago
  1. If I keep hitting ignore (around 10 times it reports): afbeelding
  2. Here's the result from the modules window: debug.txt
mcurland commented 5 years ago

The files look good, I've tried multiple builds of NORMA here. I guess we can try a full file modules to compare. I'm on 16.0.2, which I isn't latest anymore. What are you on?

You didn't tell me if you can create a new .orm file or not. We can also try different versions of the file with progressively fewer extensions (view off, relational off, abstraction off).

Short of that I'm going to have to put you in a debugger on the source. Debugging is much easier that it used be, but still has a few steps. Bottom line is that short of seeing what property (or properties) are causing problems I'm kind of stuck. There's something out of whack here between whack here between the VS installation and the NORMA files, I just can't tell what it is without a debugger.

jpwijbenga commented 5 years ago

I fixed it by Modifying my Visual Studio installation by installing the following group of components. afbeelding

I recall that I had previously (before installing VS 2019 however) removed some Visual C runtimes or some Windows SDK features, I thought were not necessary. Maybe installing the .NET desktop environment reinstalled these libraries?

jpwijbenga commented 5 years ago

Now trying to uninstall these features and see if I still get the same errors.

jpwijbenga commented 5 years ago

Yes, It seems when I uninstall .NET desktop development components, the errors are back. Is it a known prerequisite? The extension installer did not tell me so. :)

jpwijbenga commented 5 years ago

I think I narrowed it down to the Entity Framework 6 tools component. Without it, the crash happens. With it installed, everything's fine.

jpwijbenga commented 5 years ago

Ok. I didn't answer your questions yet, so here goes (I recreated the failing installation state):

Are you able to create a new .orm file, or is this causing problems as well? Creating a new file works. I'm on 16.0.2, which I isn't latest anymore. What are you on? I have version 16.1.0 We can try different versions of the file The file with all root elements other than removed works. With ormDiagram:ORMDiagram and oial:model elements added, it fails.

jpwijbenga commented 5 years ago

stacktrace.txt Locals.txt Sorry for the formatting (just copy-pasted it). It points to the Absolute bounds property of the objecttypeshape, it seems.

mcurland commented 5 years ago

This is really odd. I took off Entity Framework 6 with no difference. The one thing I likely have different is that the Visual Studio Extension workload is selected (with Modeling SDK added) for building NORMA. I haven't tried without this (NORMA needs it to build, so I would have to unininstall/reinstall between builds). This file is pulled from the installer (the 'More..' button has an 'Export'). Let's compare to yours.

I wouldn't think the desktop files would matter, but they just might. We need either that or a web development I believe to enable C#/VB .NET Framework (old style) projects, which are the only ones that support the NORMA generator right now.

Matt.vsconfig.txt

I'm curious if you can reproduce this with extension development turned on. There are a few files in the NORMA package that are copied from those files, which are necessary for DSL but don't install by default. Maybe I missed one of those, or need another required component in the dependencies list. In any case, when you make changes, export your installer settings. You can then import later to restore.

AbsoluteBounds maps to a RectangleD property type, which is defined in the ...Modeling.Diagrams... assembly, which definitely installs. I just don't see anything obvious here.

My Skype is what it has always been if we need to go there.