gpt4 book ai didi

.net - 如何使用程序集绑定(bind)重定向来忽略修订和内部版本号

转载 作者:行者123 更新时间:2023-12-03 21:13:19 26 4
gpt4 key购买 nike

我有几个 C# 中的 .NET 应用程序,以及一个供它们访问数据库的 API。我想将所有版本的 API 放入数据库中,让他们选择最高版本和内部版本号,但坚持使用它们构建时使用的主要和次要版本号。基本上当我引用 API 1.2.3.4我希望引用阅读 1.2.*.*这样应用程序就可以拿起1.2.3.5我看到我可以使用 XML 配置文件来做到这一点。我宁愿遵守它。类似于发布策略,但没有额外的文件。我可以接受。另一个问题是我看到的所有解决方案都将一个版本重定向到另一个特定版本,而不仅仅是任何更新的版本。

我该怎么做呢?

有人可以向我指出发布商政策的信息来源吗?

最佳答案

感谢 leppie's suggestion使用 AppDomain.AssemblyResolve事件,我能够解决类似的问题。这是我的代码的样子:

    public void LoadStuff(string assemblyFile)
{
AppDomain.CurrentDomain.AssemblyResolve +=
new ResolveEventHandler(CurrentDomain_AssemblyResolve);
var assembly = Assembly.LoadFrom(assemblyFile);

// Now load a bunch of types from the assembly...
}

Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
var name = new AssemblyName(args.Name);
if (name.Name == "FooLibrary")
{
return typeof(FooClass).Assembly;
}
return null;
}

这完全忽略了版本号,并将已加载的库替换为任何名为“FooLibrary”的库引用。您可以使用 AssemblyName 的其他属性如果您想限制更多,请上课。 FooClass可以是 FooLibrary 程序集中的任何类。

关于.net - 如何使用程序集绑定(bind)重定向来忽略修订和内部版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460271/

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