2009-02-09 65 views
5

我需要在屏幕上显示.NET Compact Framework版本号。我使用.NET CF 2.0与Windows   CE 4.0。.NET Compact Framework应用程序中的版本号

到目前为止,我一直忽略完全版本号。我需要添加任何东西到大会?我如何以编程方式检索它?


可惜,这并不适用于Compact Framework的。 Compact Framework中不存在Application.ProductVersion属性。尽管你的答案的最新部分适用。

还有一个问题: 做这些属性(主要,次要,构建,修订)会自动增加还是只要我想设置它们?我看到它的方式,修订版应该随每个新版本自动增加。

回答

12

System.Reflection.Assembly.GetExecutingAssembly()。的GetName()。Version.Major System.Reflection.Assembly.GetExecutingAssembly()。的GetName()。Version.Minor System.Reflection.Assembly.GetExecutingAssembly()。 。的GetName()Version.Build System.Reflection.Assembly.GetExecutingAssembly()的GetName()Version.Revision

来源:http://msdn.microsoft.com/en-us/library/system.version.aspx

(编辑)

Application.Prod uctVersion属性

获取与此应用程序关联的产品版本。

在Compact Framework中不可用但是System.Reflection.Assembly.GetExecutingAssembly()。GetName()。Version Is。

来源:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.productversion.aspx

+0

加修正,Application.ProductVersion无法在CF – VBNight 2009-02-09 22:01:07

5
+0

或者你可以用'的ToString() `没有参数就可以获得完整版本的字符串。 – 2017-01-08 08:42:38

1

我知道这是一个老问题,但在这里是一个解决方案,我发现使用反射和LINQ (转贴自my answer here)。

首先,我将此添加到AssemblyInfo中。CS(用您想使用的任何字符串):

[assembly: AssemblyInformationalVersion("1.0.0.0 Alpha")] 

然后,你可以用这个方法来拉出属性(我把它放在一个静态类里面AssemblyInfo.cs文件)。方法get是所有Assembly属性的数组,然后选择与属性名称匹配的第一个结果(并将其转换为适当的类型)。然后可以访问InformationalVersion字符串。

//using System.Reflection; 
//using System.Linq; 
public static string AssemblyInformationalVersion 
{ 
    get 
    { 
     AssemblyInformationalVersionAttribute informationalVersion = (AssemblyInformationalVersionAttribute) 
      (AssemblyInformationalVersionAttribute.GetCustomAttributes(Assembly.GetExecutingAssembly())).Where( 
       at => at.GetType().Name == "AssemblyInformationalVersionAttribute").First(); 

     return informationalVersion.InformationalVersion; 
    } 
} 

为了得到正常 “的AssemblyVersion” 属性我用:

//using System.Reflection; 
public static string AssemblyVersion 
{ 
    get 
    { 
     return Assembly.GetExecutingAssembly().GetName().Version.ToString(); 
    } 
} 
0

显示产品版本的.NET Compact Framework的(与2.0和3.5测试),你可以使用AssemblyHelper。 getProductVersion()定义如下。

例如,如果所述组件版本是在AssemblyInfo.cs文件定义如下面,该方法的结果是“1.2.3”。

提取AssemblyInfo.cs文件中:

[assembly: AssemblyVersion("1.2.3")] 

提取AssemblyHelper.cs文件:

using System; 
using System.Reflection; 

public static class AssemblyHelper 
{ 
    public static string getProductVersion() 
    { 
    Version assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version; 
    return String.Format("{0}.{1}.{2}", assemblyVersion.Major, assemblyVersion.Minor, assemblyVersion.Build); 
    } 
} 
相关问题