circles-arrows / blueprint41

An Object Graph Mapper for CSharp to connect to Neo4j or Memgraph.
http://www.blueprint41.com/
MIT License
31 stars 8 forks source link

Solution stopped compiling #44

Closed RobHudson72 closed 6 months ago

RobHudson72 commented 6 months ago

Is it possible that there was a breaking change with the last update?

My Generated project stopped compiling today... there were no changes to the model. I noticed it when I tried to build the solution. I also noticed that there was an update to the NuGet package on Feb 20

The error is: CS1503 Argument 1: cannot convert from Blueprint41.Property to Blueprint41.EntityProperty.

Additionally, there are errors saying that Node.EventAction is obsolete.

Finally, there are errors that "EventAction" does not contain a definition for Uid and no accessible extension method 'Uid' accepting a first argument of time 'EventAction' could be found

Both BluePrint41 and Neo4j Driver packages are on the latest version 1.1.0.

circles-arrows commented 6 months ago

For sure the code is not binary backward compatible and all NuGet references must be of the same version. Source code backward compatibility is fairly good, although there are a few breaking changes. For example we removed a few refactor actions that were unclear from their name what they were supposed to do, while at the same time their implementation contained bugs that makes it very unlikely anyone is currently using it and has a project that is not crashing during startup at the same time.

For your issue however, it sounds like you are either still referencing an older Blueprint41 nuget somewhere, or some DLL that was compiled against an older version of Blueprint41 got cached somewhere.

If you work with Visual Studio, you could try the following things: 1) Do a "Clean Solution" in the "Build" menu 2) In the "Tools" menu choose "Nuget Package Manager", then "Manage Nuget Packages for Solution..." and check if all references are for version 1.1.0 3) Double check the directives in the T4 that generates your classes 4) Close Visual Studio and make a batch file with the below code and put it in the root of your source folder & run it from there. Start Visual Studio and do a rebuild twice. That should get rid of cached of DLL's 5) Upgrade to the new code generation (a page with info on how to upgrade your project file is coming to the wiki in a few days) 6) If all else fails -> Join our discord server and ask for help there. It might be instant, or you might need to wait a few hours, depending on your timezone. But it will get solved there for sure!

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d obj bin') do (
    rd /s /q "%%i"
)
circles-arrows commented 6 months ago

@RobHudson72 It should be solved in the latest nuget v1.1.3 Can you check if all edge cases are now working for you?