Невозможно вставить C ++ / CLR сборки номер версии - PullRequest
0 голосов
/ 29 апреля 2018

Я использую C ++ CLR DLL в своем приложении C # WinForms (.NET 3.5). Я установил информацию о сборке в соответствии со всеми найденными инструкциями, но при просмотре моего приложения C # в VS2015 метаданные DLL продолжают отображать «0.0.0.0».

Вот несколько скриншотов моего CPP и результат:

Файл ресурса - app.rc. Он также включает «version.h», показанный ниже.

App.rc

version.h:

enter image description here

Когда я вижу свойства DLL-файла, я вижу следующее:

enter image description here

Но в конце, когда я смотрю на мой код C #, сгенерированный из управляемого CPP, я вижу, что это "0.0.0.0":

enter image description here

Есть что-то, чего я здесь не хватает? Спасибо.

1 Ответ

0 голосов
/ 18 февраля 2019

Я столкнулся с той же (или похожей) проблемой: в решение была включена библиотека CLI C ++, а ее версия сборки была 0.0.0.0.

Единственный способ изменить это - добавить новый исходный файл с именем AssemblyInfo.cpp в библиотеку che CLI C ++, содержащую следующие строки:

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

[assembly:AssemblyTitleAttribute(L"CliLibrary")];
[assembly:AssemblyDescriptionAttribute(L"")];
[assembly:AssemblyConfigurationAttribute(L"")];
[assembly:AssemblyCompanyAttribute(L"")];
[assembly:AssemblyProductAttribute(L"CliLibrary")];
[assembly:AssemblyCopyrightAttribute(L"Copyright (c)  2019")];
[assembly:AssemblyTrademarkAttribute(L"")];
[assembly:AssemblyCultureAttribute(L"")];

[assembly:AssemblyVersionAttribute("1.0.0.0")]; // <-- This is the version string

[assembly:ComVisible(false)];

[assembly:CLSCompliantAttribute(true)];

После перекомпиляции DLL я наконец прочитал 1.0.0.0 как версию сборки DLL. Надеюсь, это поможет кому-то еще!

...