0

我的 AssemblyInfo.cs 文件中有一个版本号,如下所示:

[assembly: AssemblyInformationalVersion("0.0.0.2")]

通常我可以使用FileVersionInfo访问这些信息,并且我确实引用了 System.dll(通常在其中定义此类),但 System.Diagnostics 命名空间似乎不可用。

这是 VS 所说的路径是我引用的系统程序集:

C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\System.dll

简而言之:如何在我的应用程序中显示我的应用程序的版本字符串(AssemblyInformationalVersion

编辑:使用

Assembly.GetExecutingAssembly().GetName().Version.ToString()

返回“0.0.0.0”,因为该属性未在我的 AssemblyInfo.cs 文件中定义。

4

2 回答 2

2

您是否正在尝试获取自己的应用程序版本:

Debug.WriteLine(string.Format("My App Version: {0}",
    Assembly.GetExecutingAssembly().GetName().Version.ToString()));

或 CF 程序集的版本:

Debug.WriteLine(string.Format("System.dll Version: {0}",
    typeof(int).Assembly.GetName().Version.ToString()));

编辑1

实际的本机 FileInfo 版本(我认为这是您所追求的版本)。

编辑2

或者您可以对托管程序集执行此操作:

var a = Assembly.GetExecutingAssembly().GetCustomAttributes(
    typeof(AssemblyInformationalVersionAttribute), true)
    .FirstOrDefault() as AssemblyInformationalVersionAttribute;
Debug.WriteLine(string.Format("AssemblyInformationalVersion: {0}",
a.InformationalVersion));
于 2012-06-25T15:51:19.957 回答
-1

解决方案是在 AssemblyInfo.cs 中手动输入以下内容:

[assembly: AssemblyVersion("1.2.3.4")]

我不确定为什么 Visual Studio 省略了它,但是通过添加它,

Assembly.GetExecutingAssembly().GetName().Version

返回期望值。

总结一下:我使用了正确的代码,但我的 AssemblyInfo.cs 文件中有错误的信息。

于 2012-06-25T16:02:01.717 回答