New project format in 2021 R3.1+

Did you noticed the 2021R3.1 new project file format ?

Even 2021R2.1 cannot read a project created with 2021R3.1…

Didn’t notice that, and it just bit me.

Nasty.

DesktopWindow and other new classes don’t exist in the old version.

I wasn’t using them. All API1 code.

perhaps the minimum IDE value in the XML is inconsistent with the older version

I have a project created with Xojo2019r1.1, opened it with Xojo2022r1.1 added some code, try to open again with Xojo2019 and I get this:
image

After clicking Proceed, the project loaded and is working correctly.

What is the problem that you are seeing?
Did you start the project with Xojo2021r3.1? If so, did you change all Desktop controls to non-desktop controls?

I just created a new project with Xojo2022r1.1. It can’t be loaded into Xojo2019r1.1, then I changed all Desktop controls to non-desktop controls (it looks like there is a problem with MenuBar so I deleted it and added it again as non-desktop menubar). After the changes Xojo2019r1.1 can load the project.

The project was created and started in 2018 R3

Problem was the minimum IDE version after stupidly saving from 2022 R3.1 as Dave suspected

AND

the menus were also set to DesktopMenuItem

Find/Replace on the DesktopMenuItem, saving, then changing minimum IDE version solved my problem

Thanks!

[edit:] the Application also became DesktopApplication - I had reverted that too.

Weird that you ended up with DesktopMenuItem, in theory that only should happen if your App has super DestkopApplication, if the super is Application then Xojo should add MenuItem.

Glad you solved your problem.

My apology, the Application also became DesktopApplication - I had reverted that too.

Easiest way for me was to just drop and drag the program items over to an empty 2018 R3 project … but it is good to know how else I could do it.

yeah its not really a new format
just new entires in the project files that old versions don’t like

and then everything renamed as “desktopXXXXX”

BUT you CAN deal with most of this by overriding the default desktop project so it write old style projects (uses Window instead of desktopwindow etc)

  1. save a BINARY project from 22019r1 or a version BEFORE 2019r3
  2. name it Default Desktop Project.xojo_binary_project
  3. place it in the Project Templates directory right next to the IDE application
    Now every new project will use that old form as the template and create API1 compatible projects

You might still need to edit the text file that is the project manifest (ends with .xojo_project) and change the first few lines to make it so the project opens flawless in o old version

In a text project from 2022r1.1 you might see

Type=Web2
RBProjectVersion=2022.011
MinIDEVersion=20200200
OrigIDEVersion=20210301

as the first few lines
Edit those to say 2018.03 (in their respective forms) and you are good to go

In an XML project you will see something similar right at the beginning

In binary you’re hosed as there is no easy way to edit those

Well, if you have the same amount of characters, you can safely replace them, even in binary. Just avoid removing “invisible” characters.

And did you noticed the Deprecated entries in the Properties pane (bottom) ?

Original project was created with Xojo 2015r1 and saved by error with > 2019r1 IDE.

I save the project as XML and delete all these “bad” (for me) entries…