我正在使用一个C++/CLI项目,该项目封装了Visual 2012中的C++本机库。
我的C++/CLI项目有一个AssemblyInfo.cpp。我在那里设置了所有字段,其中包括一个"AssemblyVersionAttribute“。但是,当我构建我的项目并在Windows Explorer中检查其属性时,版本信息是空的。
这是我的第一个C++/CLI项目,我已经检查了项目属性中的所有选项,但是我找不到任何可以设置版本的选项。
如何设置C++/CLI项目的版本?
更新
我将添加我的AssemblyInfo.cpp的内容。我只是填写了存在的字段,这是在我创建项目时自动生成的。
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
[assembly:AssemblyTitleAttribute("MyTitle")];
[assembly:AssemblyDescriptionAttribute("")];
[assembly:AssemblyConfigurationAttribute("")];
[assembly:AssemblyCompanyAttribute("")];
[assembly:AssemblyProductAttribute("MyProduct")];
[assembly:AssemblyCopyrightAttribute("Copyright © 2014")];
[assembly:AssemblyTrademarkAttribute("Inc")];
[assembly:AssemblyCultureAttribute("")];
[assembly:AssemblyVersionAttribute("3.9.0")];
[assembly:ComVisible(false)];
[assembly:CLSCompliantAttribute(true)];
[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];发布于 2014-04-21 20:08:23
Windows中的'Details‘页面正在从文件中的非托管结构中提取信息,因此您需要创建一个非托管版本资源来填充该信息。
我建议您也维护AssemblyInfo.cpp文件中的各种程序集属性。如果使用反射获取有关程序集的信息,它将使用AssemblyInfo.cpp中的内容,而不是版本资源中的内容。
发布于 2014-04-21 19:54:07
有两个属性:AssemblyVersion属性和AssemblyFileVersion属性。使用C#编译器,如果没有提供AssemblyVersion,文件版本将跟踪AssemblyFileVersion。我不记得C++/CLI编译器是否有不同的行为,但值得尝试一下AssemblyFileVersion。
发布于 2019-08-29 07:50:40
您可以在文件夹VS_VERSION_INFO中修改\app.rc\Version文件。您可以使用资源可视化IDE显示此信息文件。
https://stackoverflow.com/questions/23204774
复制相似问题