3

我使用VS2008和.NET Compact Framework 3.5构建了一个可执行文件,目标是Windows Mobile 6 professional,但是每当我编译该项目时, AssemblyInfo.cs文件被忽略。从.NET程序集(Compact Framework 3.5/VS2008)中缺少版本信息

我已经在其他项目中做过很多次,它的工作原理没有问题,但由于某些原因,我不能让AssemblyTitle/AssemblyProduct/AssemblyVersion属性等显示出来(我尝试使用Windows资源管理器中查看它们,我能够在我已经构建的任何其他程序集的细节选项卡中查看这些属性 - 甚至是同一解决方案中的其他项目)。

有什么建议吗?

+0

更多信息:刚刚发现,如果我创建一个新的智能设备EXE项目针对Windows Mobile然后assemblyinfo被忽略,但如果我创建相同的项目针对Windows CE那么程序集信息已经包括了!尽管如此,仍然不明智!似乎Windows Mobile EXE不能包含assemblyinfo! – 2009-12-30 18:16:47

回答

0

该信息正在查看本地版本信息,该信息在桌面上使用AssemblyFileVersionAttribute进行设置。 AssemblyFileVersionAttribute在CF中不受支持,因此设置版本信息的唯一方法是使用命令行编译。有a workaround in this blog

+1

谢谢,但在同一解决方案的另一个项目中的另一个紧凑框架程序集所有的信息设置正确。我也对以前的项目使用了相同的技术,没有任何问题。这只是一个似乎有问题的项目。这两者之间的唯一区别是,一个是exe,另一个是dll(尽管其他exe项目已经正确包含了这些信息)。 – 2009-12-30 17:54:05

+0

回复:马丁的,在我的情况下,它似乎在我的项目中完全正常工作,并且符合我对DLL的预期,但对于EXE项目它根本不起作用。我使用VS2008,VB.NET也针对CFv3.5。 – eidylon 2010-07-19 16:56:11

0

我知道这是旧的,但有在这里发表简单的解决方案:
Version number in .NET Compact Framework application

你必须使用反射。 ()。GetName()。Version.Metal()。GetName()。Version.Minor System.Reflection.Assembly.GetExecutingAssembly()。GetName()。Version( )System.Reflection.Assembly.GetExecutingAssembly .Build System.Reflection.Assembly.GetExecutingAssembly()。GetName()。Version.Revision

0

in tag PlatformFamilyName;而是PocketPC,更改为添加WindowsCE 在csproj