gpt4 book ai didi

c# - 产品发布改了库名,新旧如何兼容?

转载 作者:行者123 更新时间:2023-11-30 15:49:57 26 4
gpt4 key购买 nike

我们有一个产品使用来自第 3 方供应商的引用。随着新产品的发布,他们已将此引用重命名为新名称。

我们想要做的是编译我们的应用程序的一个版本,以便它可以针对库的旧名称和新名称运行。

在我们使用的库部分之间基本上没有变化,只有 1 个方法重命名,但我不知道如何开发我们的应用程序来处理这两个部分。

如果必须的话,我们可以分支代码以同时使用两者,但我真的很想有某种适配器,所有调用都经过它,然后分派(dispatch)给旧的或新的。

安装新应用程序后,它会删除旧库,因此旧代码无法编译。

关于我可以尝试什么或如何解决这个问题的任何指示?

此外,该应用程序是使用 Visual Studio 2005 在 C# 中开发的。

最佳答案

Assembly Binding Redirection ... 您可以将旧的 DLL 引用重定向到新的。您将需要为重命名的方法编写一个包装器方法。这真是令人头疼。我要把它从头顶吐出来,所以我不保证名称的准确性或可编译性,但您可以将其视为伪代码...

private bool _useOldMethodName = false;
public void MethodAlias(string arg1)
{
if (_useOldMethodName)
{
Reference.OldFunctionName(arg1);
}
else
{
try
{
Reference.NewFunctionName(arg1);
}
catch (MethodNotFoundException mnfe)
{
_useOldMethodName = true;
}
}
}

类似的东西。这在任何情况下都不理想。

我很好奇,为什么你不能总是使用新的引用?只需将新的引用 DLL 与您的代码一起分发,您将永远不会遇到问题...

关于c# - 产品发布改了库名,新旧如何兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1077777/

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