ASo Ага, я понял, о чём ты: он будет ругаться, говорить что не найдены таргеты, но загрузит что-то всё равно. Я так делаю иногда, чтобы в старом 3.5.SP5 на WinXP открыть проект от 3.5.SP14 и оттуда код скопировать.

melkiy Ухты! Почти впервые вижу понимание. Жму лапу!
имхо, надо было использовать КООРДИНАТЫ для FBD в файле проекта
Да, я про это же и говорил. Хранить инфу в виде "Штуковина такого-то типа (TON, TOF, AND, Макрос) по таким-то координатам с такими-то соединениями".

Так западло сериализации как раз в том, что она самая топорная и стандартная. Поэтому если ты взял класс JSON и сказал ему сериализоваться - то он и запишет все значения. И единственный путь - это генерировать JSON самому на лету.
А XML, кстати, круто упаковывается в тот же ZIP. И как раз для систем контроля версий подойдёт.
Можно в Owen Logic сделать аналогию с CodeSys в виде трёх режимов хранения проекта (с разными степенями защиты): голый XML без ZIP, XML в ZIP, XML в ZIP с паролем.
И ещё как раз подойдёт для случаев, когда проект повредился в хлам, и из файла надо достать хоть кусок данных. И это будет очень мощное и конкурентное преимущество Owen Logic перед другими средами разработки.
Или если надо... написать программу, которая делает программы: она будет генерить XML-проект для Owen Logic на лету, например.

Короче, ВОТ. Теперь нам с тобой нужна премия. А ОВЕНу - пинок.