如何使C#.NET CF程序的AssemblyInfo版本传播到"资源管理器属性"窗口?
似乎如果我们编译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的这篇文章。