Как вы устанавливаете версию проекта С++/CLI в Visual Studio?

Я работаю с проектом С++/CLI, который обертывает собственную библиотеку С++ в Visual Studio 2012.

В моем проекте С++/CLI есть AssemblyInfo.cpp. Я установил там все поля, которые включают "AssemblyVersionAttribute". Однако, когда я построил свой проект и проверил его свойства в проводнике Windows, информация о версии пуста.

Это мой первый проект С++/CLI, я просматривал все параметры в свойствах проекта, но не смог найти ничего, что работает для установки версии.

Как установить версию для проекта С++/CLI?


Обновление

Я добавлю содержимое своего AssemblyInfo.cpp. Я просто заполнил поля, которые присутствовали, это было автоматически создано, когда я создал проект.

using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;

[assembly:AssemblyTitleAttribute("MyTitle")];
[assembly:AssemblyDescriptionAttribute("")];
[assembly:AssemblyConfigurationAttribute("")];
[assembly:AssemblyCompanyAttribute("")];
[assembly:AssemblyProductAttribute("MyProduct")];
[assembly:AssemblyCopyrightAttribute("Copyright © 2014")];
[assembly:AssemblyTrademarkAttribute("Inc")];
[assembly:AssemblyCultureAttribute("")];
[assembly:AssemblyVersionAttribute("3.9.0")];
[assembly:ComVisible(false)];
[assembly:CLSCompliantAttribute(true)];
[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];

Ответ 1

Страница "Сведения" в проводнике Windows извлекает информацию из неуправляемых структур в файле, поэтому вам нужно создать неуправляемый ресурс версии, чтобы заполнить это.

  • В Visual Studio добавьте в проект "Файл ресурсов (.rc)", если у вас его еще нет.
  • В файле ресурсов добавьте новый ресурс "Версия".
  • Заполните свою информацию.

Я рекомендую вам поддерживать различные атрибуты сборки в файле AssemblyInfo.cpp. Если вы используете рефлексию для получения информации о сборке, она будет использовать материал в AssemblyInfo.cpp, а не в ресурсе версии.

Ответ 2

Есть два атрибута; атрибут AssemblyVersion и атрибут AssemblyFileVersion. С помощью компилятора С# версия файла будет отслеживать AssemblyVersion, если не указан AssemblyFileVersion. Я не могу вспомнить, работает ли компилятор С++/CLI по-разному, но, безусловно, стоит попробовать AssemblyFileVersion.

Ответ 3

Вы можете изменить файл VS_VERSION_INFO внутри папки \app.rc\Version. Вы можете использовать IDE визуализации ресурсов для отображения этого информационного файла.