如何使C#.NET CF程序的AssemblyInfo版本传播到"资源管理器属性"窗口?

时间:2020-03-06 14:39:34  来源:igfitidea点击:

似乎如果我们编译Visual Studio解决方案并在AssemblyInfo.cs文件中拥有一个版本,则该版本应传播为Windows资源管理器属性对话框。这样,某人可以简单地右键单击* .exe,然后单击"属性"以查看版本号。在Visual Studio中是否有特殊设置可以实现此目的?

示例图片http://content.screencast.com/users/Pincas/folders/Jing/media/40442efd-6d74-4d8a-8e77-c1e725e6c150/2008-09-24_0849.png

编辑:我应该已经提到过,这是专门针对.NET Compact Framework 2.0,它不支持AssemblyFileVersion。所有的希望都消失了吗?

解决方案

AssemblyFileVersion属性有帮助吗?

我们需要添加另一个属性:

[assembly: AssemblyFileVersion("1.0.114.0")]

请注意,我们仍然还需要AssemblyVerison 1才能正确识别.NET运行时的程序集。

版本号的确会传播到属性对话框中的"版本"选项卡,但不会传播到摘要。不幸的是,VS不会自动填充文件的摘要信息,因为该信息是添加到文件本身的元数据。但是,我们可以使用Microsoft提供的免费DSO OleDocument属性阅读器自己访问和操作摘要信息。

我们可以从以下网站获取该库:http://www.microsoft.com/downloads/details.aspx?FamilyId=9BA6FAC6-520B-4A0A-878A-53EC8300C4C2&displaylang=en

有关其使用的更多信息,请访问:http://www.developerfusion.co.uk/show/5093/

编辑:如上所述,如pb和Nigel Hawkins所述,我们可以使用AssemblyFileVersion属性来传播该属性,例如:

[assembly: AssemblyFileVersion("1.0.114.0")]

我不确定RevisionNumber是否是要查找的正确字段。

尝试使用资源管理器,右键单击->版本选项卡,然后查看那里的AssemblyVersion字段。

在我的项目中,我们使用FileVersion = YYYY.MM.DD.BUILD(例如2008.9.24.1),但ProductVersion应该为major.minor.revision.BUILD。我们使用AssemblyInformationalVersion来解决此问题。

.NET使用的AssemblyVersion =" MAJ.MIN.REV.1"->

AssemblyInformationalVersion =" MAJ.MIN.REV.XXX"->在资源管理器的ProductVersion中使用

AssemblyFileVersion =" YYYY.MM.DD.XXX"->在资源管理器的FileVersion中使用

请注意,在.NET Compact Framework下,AssemblyFileVersion属性不可用!

有关解决方法,请参阅Daniel Mooth的这篇文章。