Как управлять информацией о версии на Delphi XE2 на разных платформах

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

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

Ответ 1

Это все еще проблема в сборке # 16.0.4429.46931. Однако я обнаружил, что я могу устранить проблему, открыв файл проекта dproj и удалив все <VerInfo_Keys > элементы, за исключением базовой группы свойств (< PropertyGroup Condition = "'$ (Base)'!= ''" > ). Это позволяет получить информацию о версии "Все конфигурации - Все платформы" наследуемой к различным конфигурациям сборки и платформы без необходимости дублирования.

Ответ 2

Кажется, что ошибка в XE2 не позволяет распространять информацию о версии с более высокого уровня на более низкий. QC, который я открыл по этой проблеме (99428), был закрыт 7 ноября и помечен как "разрешен в сборке 16.0.4256.43595".

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

Ответ 3

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

Кажется, все нормально, если вы измените Target на ALL Configurations в первый раз, когда вы откроете его в 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>

Ответ 4

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

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

Если вы перенести проект из более ранней версии Delphi, он будет создавать ресурсы версии на уровне "Все конфигурации", в котором содержится копия старой конфигурации. Это хорошо.

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

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

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

Ответ 5

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