我需要在屏幕上显示.NET Compact Framework版本号。我在Windows CE 4.0中使用.NET CF 2.0。
到目前为止,我一直在完全忽略版本号。我需要在装配中添加任何东西吗?如何以编程方式检索它?
不幸的是,这不适用于 Compact Framework 。 Compact Framework中不存在Application.ProductVersion
属性。你的答案的最新部分适用。
还有一个问题: 这些属性(主要版本,次要版本,构建版本,修订版本)会自动增加,还是只要我想要设置它们?我看到它的方式,修改应该随着每个新构建自动递增。
答案 0 :(得分: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.ProductVersion Property
获取与此应用程序关联的产品版本。
在Compact Framework中不可用但System.Reflection.Assembly.GetExecutingAssembly()。GetName()。版本是。
来源:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.productversion.aspx
答案 1 :(得分:6)
您还可以使用Version.ToString()传递组件数作为参数返回:
System.Reflection.Assembly.GetExecutingAssembly()。的GetName()。Version.ToString(3)
此行返回Major.Minor.Build
来源:http://msdn.microsoft.com/en-us/library/bff8h2e1(VS.80).aspx
项目中有一个AssemblyInfo.cs,您可以在其中编辑程序集版本。要自动增加修订版,您可以使用以下内容:1.0.3200。*
来源:http://msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute(VS.80).aspx
答案 2 :(得分:1)
我知道这是一个老问题,但这是我使用Reflection和Linq(从my answer here转发)找到的解决方案。
首先,我将此添加到AssemblyInfo.cs中(用您想要使用的任何内容替换字符串):
[assembly: AssemblyInformationalVersion("1.0.0.0 Alpha")]
然后,您可以使用此方法提取属性(我将其放在AssemblyInfo.cs文件中的静态类中)。方法获取所有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();
}
}
答案 3 :(得分: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);
}
}