C#基于所使用的dll版本编译函数.

use*_*527 6 c# visual-studio

我有很多小项目,每个项目都依赖于各种外部dll.供应商错误修复了这些dll,导致我的程序范围有所变化,因为修复并不总是适用于其他程序.虽然我知道一些方法来解决这个问题.ea将dll保存在lib文件夹中或使用Nuget.但是,保持通用包装代码仍然很麻烦.

所以我想在visual studio中有一些方法,所以我们可以写这样的包装器:

[Rongten.dll = 1.5+]   // 1.5 and above versions
Public string[] ExtendedInfo()
{ return this.api.ExtendedInfo }

[Rongten.dll = 1.2]  //only a specific version
Public string[] ExtendedInfo()
{String[] t = new string[1];
 t = "not available";
  return t;
}
 [Rongten.dll = 1.1-]  //below a specific version
Public string  ExtendedInfo()
{ 
 t = "not available";
  return t;
}
Run Code Online (Sandbox Code Playgroud)

所以一些方括号方法[允许dll版本]或类似的东西,可能是一个插件.

Mar*_*ell 2

不,基本上。您必须查询在运行时发现的库版本(通过 API 或检查文件元数据),并在switch方法内部执行类似 a 的操作。通常您只需要执行一次;您可以通过静态字段和“惰性”加载来完成此操作,或者您可以将版本查询放入静态初始值设定项中。