0

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

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

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

应用程序.rc

版本.h:

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

我在这里缺少什么吗?谢谢。

4

1 回答 1

1

我发现自己面临相同(或类似)的问题:我的解决方案中包含一个 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 程序集版本。希望它可以帮助别人!

于 2019-02-18T15:44:06.067 回答