C# 无法嵌入C++/CLR程序集版本号 我在C WiFraseApp.net 3.5中使用C++ CLR DLL。 我已经根据找到的所有说明设置了程序集信息,但在VS2015中查看我的C应用程序时,DLL元数据一直显示为0.0.0.0

C# 无法嵌入C++/CLR程序集版本号 我在C WiFraseApp.net 3.5中使用C++ CLR DLL。 我已经根据找到的所有说明设置了程序集信息,但在VS2015中查看我的C应用程序时,DLL元数据一直显示为0.0.0.0,c#,clr,assemblyversions,C#,Clr,Assemblyversions,以下是我的CPP和结果的一些屏幕截图: 资源文件-app.rc。 它还包括下面显示的.h版本 h版: 当我看到DLL文件属性时,我可以看到以下内容: 但最后,当我查看从托管CPP生成的C代码时,我可以看到它是0.0.0.0: 这里有我遗漏的东西吗? 谢谢。我发现自己面临着相同或类似的问题:我在解决方案中包含了CLI C++库,其汇编版本为0.0.0.0。 P>我唯一能改变的方法是将一个新的源文件称为ActudiyFo.CPP添加到CHECLI C++库中,包含以下行: using namesp

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

资源文件-app.rc。 它还包括下面显示的.h版本

h版:

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

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

这里有我遗漏的东西吗?
谢谢。

我发现自己面临着相同或类似的问题:我在解决方案中包含了CLI C++库,其汇编版本为0.0.0.0。 <> P>我唯一能改变的方法是将一个新的源文件称为ActudiyFo.CPP添加到CHECLI 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程序集版本。希望它能帮助别人

您无法从非托管资源编辑器中看到它,程序集版本嵌入在CLR清单头中。这是如何出错的并不明显,特别是考虑到程序集似乎有一个强名称。当您从C++ > CLR>类库项目模板创建一个新项目时,您总是在项目中获得一个ActudioIfO.CPP文件。具有[AssemblyVersion]属性的。确保你的项目有一个。您编辑默认值1.0.*不是一个很好的选择。谢谢@Hans Passant-这非常有用,因为我发现我的C中生成的程序集信息来自AssemblyInfo.cpp文件,正如您所说,我没有包括在项目中。所有其他.rc文件和.h版本将仅设置文件版本属性。不过,我看到即使在更改值时,C的元数据也不会被反映出来,只有在更改C++项目名称时。谢谢你的帮助。