如何在Visual Studio中设置C ++ / CLI项目的版本?

时间:2014-04-21 19:47:21

标签: visual-studio-2012 c++-cli

我正在使用在Visual Studio 2012中包装C ++ Native Library的C ++ / CLI项目。

我的C ++ / CLI项目有一个AssemblyInfo.cpp。我在那里设置了所有字段,其中包括" AssemblyVersionAttribute"。但是,当我在Windows资源管理器中构建项目并检查其属性时,版本信息为空。

这是我的第一个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)];

3 个答案:

答案 0 :(得分:21)

'详细信息' Windows资源管理器中的页面正在从文件中的非托管结构中提取信息,因此您需要创建一个非托管版本资源才能填充该文件。

  1. 在Visual Studio中,添加一个"资源文件(.rc)"对你的项目,如果你还没有。
  2. 在资源文件中,添加一个新的"版本"资源。
  3. 填写您的信息。
  4. 我建议您也在AssemblyInfo.cpp文件中维护各种程序集属性。如果使用反射来获取有关程序集的信息,它将使用AssemblyInfo.cpp中的内容,而不是版本资源中的内容。

答案 1 :(得分:0)

有两个属性; AssemblyVersion属性和AssemblyFileVersion属性。使用C#编译器,如果未提供AssemblyVersion,则文件版本将跟踪AssemblyFileVersion。我不记得C ++ / CLI编译器的行为是否有所不同,但尝试AssemblyFileVersion肯定值得一试。

答案 2 :(得分:0)

您可以修改文件夹VS_VERSION_INFO中的\app.rc\Version文件。您可以使用Resource Visualizzation IDE来显示此信息文件。