Как вы устанавливаете версию проекта С++/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 визуализации ресурсов для отображения этого информационного файла.