在编译时为强命名程序集绑定重定向



我们有一个关于编译时程序集绑定重定向的问题:

  • Team V (the Veterans)正在开发产品P1
  • P1由Team V在两个分支(分支1.6)持续开发。x和1.7.x),因此产品P1的版本在两个分支
  • 中随着时间的推移而增加。
  • Team NG (New Generation)基于产品P1构建了产品P2(使用了来自P1分支1.7的某些组件)
  • 产品P2包含一个Assembly A2(强命名),帮助实现基于P1的任何产品(P2, P3…)
  • Team NG为Assembly A2创建了一个Nuget Package(它引用了来自P1分支1.7的某些程序集)
  • 现在,NG团队已经启动了产品P3,并且必须使用P2的装配A2和P1的装配A1
  • 来自P1的Assembly A1也可以作为Nuget Package提供,但在1.6版本中(因为1.7版本尚未批准用于P3产品)
  • 所以NG团队现在有两个参考的产品P3: A2和A1
  • 现在的问题是,A2指的是A1在1.7版本,但我们只有A1在1.6版本
  • Team NG在1.7版本中不允许使用A1

这就是为什么我们在编译时为强命名程序集寻找绑定重定向。据我所知(通过调查),在为强命名程序集设置此属性时,"特定版本"属性不起作用。

这样的重定向是可能的还是有其他的建议?

提前感谢认为,迈克尔

app.config/web的bindingRedirect元素。配置文件只适用于运行时(不适用于编译时)。

在编译时,编译器不坚持引用具有相同的版本号,除非在项目文件中引用的SpecificVersion元素设置为True。

强命名与非强命名不应该是一个因素。

另请参阅"特定版本"如何准确地属性的汇编参考工作在Visual Studio?

最新更新