gpt4 book ai didi

c# - 从 AssemblyInfo.cs 文件中读取版本号

转载 作者:可可西里 更新时间:2023-11-01 08:42:37 29 4
gpt4 key购买 nike

我正在尝试从 AssemblyInfo.cs 文件中提取版本号!我正在尝试使用 System.Reflection.Assembly.LoadFile(path); 但是在执行此操作时我得到了 BadImageFormatException; “该模块应包含程序集 list 。(HRESULT 异常:0x80131018)”。所以现在我很受伤,这不是可行的方法吗?我应该改用 RegEx 吗?

我已经阅读了很多关于 GetExecutingAssembly() 的示例,但我确实想从其他项目中获取版本。

澄清:我想从 AssemblyInfo.cs 文件中读取版本信息!并且不是来自已编译的文件。我正在尝试制作一个工具来在发布新版本之前更新我的版本号。

最佳答案

您可以 get Assembly version without loading它作为:

using System.Reflection;
using System.IO;

...

// Get assembly
AssemblyName currentAssembly = AssemblyName.GetAssemblyName(path);
Version assemblyVersion = currentAssembly.Version;

编辑:如果你想读取文件,那么你可以这样做:

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(Regex.Replace(version, @"\P{S}", string.Empty));
Console.WriteLine(version);
}

}

//输出

1.0.*
1.0.0.0

希望这有帮助...

关于c# - 从 AssemblyInfo.cs 文件中读取版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10498209/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com