我很难在程序集/ exe中获取版本信息。关于这一点似乎有很多问题,但没有一个能帮助我解决这个问题。
在我的exe中包含版本信息似乎是基本和简单的,但是当我从资源管理器中查看上下文菜单(右键单击> properties->详细信息)时它不会显示
如何在C#compact framework / WinMobile 6.0项目中添加版本信息(不使用插件)?
这是默认的assemblyinfo.cs
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("TestingVerInfo")]
[assembly: AssemblyDescription("hello")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("world")]
[assembly: AssemblyProduct("TestingVerInfo")]
[assembly: AssemblyCopyright("Copyright © 2011")]
[assembly: AssemblyTrademark("gggg")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("5e5fffea-0c9d-4394-9a0f-d24b7e7db9ed")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
这里的文件细节不太令人印象深刻:
答案 0 :(得分:6)
也许我不理解这个问题,但包含版本信息就像设置assembly: [AssemblyVersion][1]
属性一样简单。您可以使用以下内容进行查询:
var version = Assembly.GetExecutingAssembly().GetName().Version;
<强>更新强>
这是一个非常奇怪的行为。我知道我的应用程序和程序集中有版本信息,因此我打开了Studio并创建了一个新的智能设备项目并保留了所有默认值。果然,我得到了你看到的行为 - 也就是说没有版本信息。 WTF?我回去打开了一个存根项目,它在二进制文件中有版本信息,AssemblyInfo.cs
文件确实没有什么不同。
我玩了一下,事实证明,如果你将项目的目标平台从“Windows Mobile Xxxx”更改为“Windows CE”(如果你仍然可以部署到WinMo目标)你这样做)然后版本信息 最终在二进制文件中。不知道为什么会出现这种情况 - WinMo配置的编译器命令行必须与CE配置不同。
答案 1 :(得分:1)
为Windows Mobile生成的应用程序不是使用标准Windows操作系统可执行格式创建的。这意味着您运行的Windows操作系统不知道如何从文件中提取信息以填充详细信息选项卡。
话虽如此,版本信息仍然嵌入在应用程序中,并且可在移动设备上使用。如果您需要在应用程序中向用户显示此信息(例如,关于框),可以使用包括GetFileVersionInfo和VerQueryValue在内的coredll方法检索此数据。
我们检索这些数据的类大约有350行,所以我觉得在这里发帖并不合适,我无法快速找到我们从中得到原始想法的来源。如果需要,我可以对此进行额外的研究。