Как управлять информацией о версии на Delphi XE2 на разных платформах - PullRequest
11 голосов
/ 08 ноября 2011

Я перенесу проекты из XE в XE2 и заметил, что мне не хватает введенной вручную информации о версии, такой как название компании, версия продукта и т. Д. При создании приложений с пустыми пустыми формами VCL я вижу, что данные вводятся для информации о версии в«Все конфигурации - все платформы» исчезают, когда вы выбираете, например, «Выпуск конфигурации - 32-разрядная платформа Windows».Я думаю, что могу пройтись по платформам, повторно введя мою информацию, но что здесь происходит?Можно было бы ожидать, что информация «Все конфигурации - все платформы» будет распространяться на все платформы, если только она не будет переопределена, например, параметры компилятора и т. Д., Или я что-то упустил?

Дальнейшее примечание.это обходной путь использования DDevExtensions , который добавляет пункт меню в «Проект».Если вы установите флажки внизу «Применить к выбранным» и «Применить VersionInfo ко всем платформам», то вы сможете скопировать отображаемую информацию о версии на все платформы, не затрагивая другие проекты в вашей группе.

Ответы [ 5 ]

9 голосов
/ 29 марта 2012

Это по-прежнему проблема в сборке # 16.0.4429.46931.Однако я обнаружил, что могу устранить эту проблему, открыв файл проекта "dproj" и удалив всеэлементы за исключением для базовой группы свойств ().Это позволяет наследовать информацию о версии «Все конфигурации - Все платформы» для различных конфигураций сборки и платформы без необходимости дублирования.

2 голосов
/ 13 января 2012

Я полагаю, что существует ошибка в информации о версии, когда она помещает несколько конфигураций версий в файл .djproj в папке проекта.

Кажется, что все в порядке, если вы измените Target на ALLКонфигурации при первом запуске в Delphi XE2.Затем, как только он загрузится, опустите цель и нажмите только на полужирные записи, чтобы скопировать информацию о версии.Если вы случайно нажмете на не выделенную жирным шрифтом запись, текст будет установлен по умолчанию и станет постоянным в файле .dsproj.

Я исправил это, выполнив следующее - , вам нужно будет изменитьдетали по мере необходимости Я предлагаю вам сначала посмотреть на файл - обычно очевидно, что это происходит.

1) Скопировать файл проекта .dsproj, затем открыть проекты .dsprojфайл в блокноте

2) Найдите его первое вхождение в строке 40.

3) Скопируйте и вставьте этот бит над ним.

<PropertyGroup Condition="'$(Base)'!=''">
                                            <DCC_ExeOutput>**c:\xxx**</DCC_ExeOutput>
                                            <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
                                            <VerInfo_Locale>2057</VerInfo_Locale>
                                            <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
                                            <VerInfo_AutoGenVersion>true</VerInfo_AutoGenVersion>
                                            <VerInfo_MinorVer>12</VerInfo_MinorVer>
                                            <Icon_MainIcon>**My_Icon.ico**</Icon_MainIcon>
                                            <VerInfo_Release>1</VerInfo_Release>
                                            <VerInfo_MajorVer>5</VerInfo_MajorVer><DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;Data.Win;System.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_Keys>CompanyName=xxxxxxx;
FileDescription=**xxxxxxxx**;
FileVersion=5.12.1.0;
InternalName=;
LegalCopyright=2012 xxxxxx Services;LegalTrademarks=**xxxx**;
OriginalFilename=;
ProductName=**xxxx**;
ProductVersion=5.0;
Comments=</VerInfo_Keys>
</PropertyGroup>

4)Замените помеченные звездочкой записи информацией, расположенной ниже в файле - если вы не можете найти значок, вам нужно будет добавить его снова, хотя я обнаружил, что в большинстве моих проектов он находится в папке какОтдельный .ico

5) Затем вы можете удалить все остальные исходные записи группы свойств вплоть до:

                            <ProjectExtensions>
                                            <Borland.Personality>Delphi.Personality.12</Borland.Personality>
                                            <Borland.ProjectType/>
                                            <BorlandProject>
2 голосов
/ 09 ноября 2011

Кажется, это ошибка в XE2, из-за которой информация о версии не распространяется с более высоких на более низкие уровни.КК, который я открыл по этому вопросу (99428), был закрыт 7 ноября и помечен как «решено в сборке 16.0.4256.43595».

Для производственного использования (при переходе на XE2) я буду использовать FinalBuilderполучить правильную информацию о версии, но я жду исправления, надеюсь, в следующем месяце или около того, чтобы сборки IDE соответствовали реальному версионированию из FB.Но пока я попробую ваше предложение использовать пакет исправлений ...

1 голос
/ 10 февраля 2012

"КК, который я открыл по этому вопросу (99428), был закрыт 7 ноября и помечен как" решено в сборке 16.0.4256.43595 ".

Увы, это не исправлено в последней версии 16.0.4358.45540

Если вы перенесете проект из более ранней версии Delphi, он создаст ресурсы версии на уровне «Все конфигурации», содержащие копию более старой конфигурации. Это хорошо.

Это 'Я перейду к тому, чтобы полностью игнорировать его - это действительно очень плохо . Мы не заметили, пока довольно поздно в тестировании, что все наши исполняемые файлы создавались без информации об авторских правах и товарных знаках - это просто игнорировалось.

Единственное решение состоит в том, чтобы вручную отредактировать все файлы dproj, как указано выше. Действительно, нужно, чтобы кто-то написал инструмент, чтобы это исправить ... он довольно механический, и мне бы хотелось, чтобы у меня было время.

FinalBuilder звучит неплохо, но $ 3,5 тыс. За лицензию сверх 2 тыс. Долл. На разработчика для XE2 может вызвать у нашего бухгалтера сердечный приступ ...

0 голосов
/ 26 апреля 2012

Я создал приложение, которое удалит информацию о версии конфигурации дочерней сборки после преобразования ... Когда я открываю старый проект, я закрываю его и запускаю инструмент. Это обеспечит правильное наследование информации о версии (обновление 4 не решает эту проблему).

...