gpt4 book ai didi

c# - 合并到单个程序集时获取库版本

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:39 25 4
gpt4 key购买 nike

我有一个桌面应用程序,允许用户运行十个左右的单独模块之一。每个模块在解决方案中都作为一个独立的类库存在。各个模块的版本控制对用户来说很重要,因此我希望能够在“帮助”->“关于”框中列出每个类库的版本。这非常简单,我目前通过使用下面的代码片段在 AboutBox 中填充一个 richText 框来实现。

this.moduleVersions.Text = "";
foreach (var kvp in mainform.moduleList)
this.moduleVersions.Text += String.Format("{0,-20}: {1}\r\n", kvp.Key, kvp.Value.Assembly.GetName().Version.ToString());

请注意,父主窗体中的模块列表是名称和类型的字典:

public Dictionary<string, Type> moduleList = new Dictionary<string, Type>();

但这就是问题所在。在发布版本中,我将所有 dll 混淆并合并到一个可执行文件中。抛开这是否是最佳实践的问题(我知道这不是,但有令人信服的理由),问题是它打破了上面的代码片段,因为现在所有模块在物理上都在同一个程序集中(父 main形式),它们都返回主程序集的版本。我想以某种方式保留原始程序集的版本号。没有蛮力(即硬编码版本号)这可能吗?

此外,我认为它不相关,但我正在使用 .NET Reactor 进行混淆和合并。

谢谢。

最佳答案

创建自定义属性并修饰类型。

关于c# - 合并到单个程序集时获取库版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9517995/

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