Невозможно вставить C++/CLR сборки Номер версии

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

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

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

App.rc

version.h:

введите описание изображения здесь

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

введите описание изображения здесь

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

введите описание изображения здесь

Есть что-то, чего я здесь не хватает? Благодарю.

0 ответов

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

Единственный способ изменить это - добавить новый исходный файл AssemblyInfo.cpp в библиотеку 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. Надеюсь, это поможет кому-то еще!

Другие вопросы по тегам