Невозможно вставить C++/CLR сборки Номер версии
Я использую C++ CLR DLL в своем приложении C# WinForms (.NET 3.5). Я установил информацию о сборке в соответствии со всеми найденными инструкциями, но при просмотре моего приложения на C# в VS2015 метаданные DLL продолжают отображать "0.0.0.0".
Вот несколько скриншотов моего CPP и результат:
Файл ресурса - app.rc. Он также включает "version.h", показанный ниже.
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. Надеюсь, это поможет кому-то еще!