[英]Retrieving Assembly version from AssemblyInfo.cs file with Regex
[英]Getting Assembly Version from AssemblyInfo.cs
我们的Web应用程序中有一个AssemblyInfo.cs
文件,但我们在同一个解决方案中有其他项目。 他们大多是类库。 有人告诉我,从显示器组件版本AssemblyInfo.cs
我们的UI。 我在程序中的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()
以及它在其他类库的另一个程序集上运行会怎么样? 这些代码是否会始终从驻留在Web项目中的AssemblyInfo.cs
文件中获取? (这就是我想要的)
正如文档所述, 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.