我的AssemblyInfo.cs文件中有一个版本号,如下所示:
[assembly: AssemblyInformationalVersion("0.0.0.2")]
通常,我可以使用FileVersionInfo访问这些信息,并且我确实有一个对System.dll的引用(通常定义这个类),但是System.Diagnostics命名空间似乎不可用。
VS说的路径是我所引用的系统程序集:
C:\程序文件(x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\System.dll
简而言之::如何在应用程序中显示应用程序的版本字符串(AssemblyInformationalVersion)?
编辑:使用
Assembly.GetExecutingAssembly().GetName().Version.ToString()
返回"0.0.0.0“,因为该属性没有在我的AssemblyInfo.cs文件中定义。
发布于 2012-06-25 16:02:01
解决方案是在AssemblyInfo.cs中手动输入以下内容:
[assembly: AssemblyVersion("1.2.3.4")]
我不知道Visual为什么省略它,但是通过添加它,
Assembly.GetExecutingAssembly().GetName().Version
返回预期值。
总之:我使用了正确的代码,但是我的AssemblyInfo.cs文件中有错误的信息。
发布于 2012-06-25 15:51:19
所以你想要得到你自己的应用程序的版本:
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()));EDIT1
或者实际的本机FileInfo版本 (我想这是你要找的)。
EDIT2
也可以对托管程序集执行此操作:
var a = Assembly.GetExecutingAssembly().GetCustomAttributes(
typeof(AssemblyInformationalVersionAttribute), true)
.FirstOrDefault() as AssemblyInformationalVersionAttribute;
Debug.WriteLine(string.Format("AssemblyInformationalVersion: {0}",
a.InformationalVersion));https://stackoverflow.com/questions/11192566
复制相似问题