Компиляция DLL с информацией о версии
-
26-09-2019 - |
Вопрос
Какие шаги необходимы для компиляции информации о версии внутри Windows DLL из командной строки. Я смотрел на файлы versionInfo, но не смог понять, как связать их с dll.
Спасибо
Решение
Вам необходимо создать ресурс версии и добавить его в свой проект. Это может быть очень легко сделать изнутри визуальной студии. В VS 2008, щелкните правой кнопкой мыши папку проекта, выберите «Добавить» и в разделе «Visual C ++» выберите «Файл ресурса» (не шаблон ресурсов), в файле ресурса, только что создал, вы сможете добавить ресурс версий, который выглядит как это:
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "XXX Application"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "XXX"
VALUE "LegalCopyright", "Copyright (C) 2010"
VALUE "OriginalFilename", "XXX.exe"
VALUE "ProductName", "XXX Application"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
Из командной строки вам нужно использовать rc.exe, компилятор ресурсов, а затем связывает результат к вашей DLL.
Другие советы
Щелкните правой кнопкой мыши имя проекта в Solution Explorer, выберите «Добавьте», затем ресурс. Выберите версию. В нижней панели вновь созданного VS_Version_info просто измените каждое значение соответственно, повторно создайте, а затем будет информация о версии.
Вы обычно помещаете ресурс VersionInfo в файл .rc и компилируйте его с компилятором ресурсов (rc.exe). К сожалению, я не знаю ни одной (недавней) документации источника формата. Имитация того, что VS производит, кажется, работает хорошо, хотя ...