无法嵌入 C++/CLR 程序集版本号

Cannot embed C++/CLR Assembly Version number

我在我的 C# WinForms 应用程序 (.NET 3.5) 中使用 C++ CLR DLL。 我已经根据找到的所有说明设置了程序集信息,但是在 VS2015 中查看我的 C# 应用程序时,DLL 元数据一直显示“0.0.0.0”。

以下是我的 CPP 和结果的一些屏幕截图:

资源文件 - app.rc。 它还包括如下所示的 "version.h"。

version.h:

当我看到 DLL 文件属性时,我可以看到以下内容:

但最后,当我查看从托管 CPP 生成的 C# 代码时,我可以看到它是“0.0.0.0”:

我在这里遗漏了什么吗? 谢谢

我发现自己面临相同(或类似)的问题:我在解决方案中包含一个 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汇编版本。希望对其他人有帮助!