从AssemblyInfo.cs获取程序集版本
本文关键字:程序集 版本 获取 cs AssemblyInfo | 更新日期: 2023-09-27 18:01:24
我们在Web应用程序中有一个AssemblyInfo.cs
文件,但我们在相同的解决方案中确实有其他项目。它们大多是类库。我被告知在我们的UI上显示AssemblyInfo.cs
的汇编版本。我从c# AssemblyFileVersion在程序中的使用中找到了以下解决方案
using System.Reflection;
Version version = Assembly.GetExecutingAssembly().GetName().Version;
或
using System.Reflection;
using System.IO;
FileVersionInfo fv = System.Diagnostics.FileVersionInfo.GetVersionInfo
(Assembly.GetExecutingAssembly().Location);
Console.WriteLine("AssemblyVersion : {0}",
Assembly.GetExecutingAssembly().GetName().Version.ToString());
Console.WriteLine ("AssemblyFileVersion : {0}" ,
fv.FileVersion.ToString ());
但这让我有点困惑。它说GetExecutingAssembly()
,如果它是运行在另一个程序集从其他类库?这些代码将从AssemblyInfo.cs
文件,居住在Web项目所有的时间取回?(这就是我想要的)
如文档所述,Assembly.GetExecutingAssembly()
获取调用代码在其中编译的程序集。
如果你想更明确(和更快),你可以写typeof(SomeType).Assembly
,其中SomeType
是你正在寻找的项目中的任何类型。
如果你想读取文件,你可以这样做。
string path = @"d:'AssemblyInfo.cs";
if (File.Exists(path))
{
// Open the file to read from.
string[] readText = File.ReadAllLines(path);
var versionInfoLines = readText.Where(t => t.Contains("[assembly: AssemblyVersion"));
foreach (string item in versionInfoLines)
{
string version = item.Substring(item.IndexOf('(') + 2, item.LastIndexOf(')') - item.IndexOf('(') - 3);
Console.WriteLine(version);
}
}
输出1.0.0.0