NOTE: This answer is for accessing the AssemblyInfo properties within a .NET CF 3.5 application. It does not propagate to the executable's "Properties" inside of Windows Explorer (but could be used to write to a file, to the console, or to display in the application)
I know this is a very old question, but here is a solution I found using Reflection and Linq to get the "AssemblyInformationalVersion" (product version in newer Visual Studio projects).
First, I added this to the AssemblyInfo.cs (replace the string with whatever you want to use):
[assembly: AssemblyInformationalVersion("1.0.0.0 Alpha")]
Then, you can use this method to pull out the attribute (I placed it inside a static class in the AssemblyInfo.cs file). The method get's an array of all Assembly attributes, then selects the first result matching the attribute name (and casts it to the proper type). The InformationalVersion string can then be accessed.
//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;
}
}
To get the normal "AssemblyVersion" attribute I used:
//using System.Reflection;
public static string AssemblyVersion
{
get
{
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
}