我有很多组件,而且很多时候一个组件依赖于另一个组件。在 .Net 中,如果您对任何程序集进行更改,则应更改其程序集版本以反映此更改。然而,这会在依赖链上引发连锁反应。
处理此问题的一种方法是使用绑定重定向,主要是在您知道没有引入重大更改的情况下。
我的问题是 - 绑定重定向的使用有多不受欢迎?当产品投入生产时,我是否应该始终确保没有这些?
编辑 - 应用程序是基于通用框架的各种服务。我们是这些服务的唯一开发者和支持者。没有修补程序,只是在必要时推送新的 MSI。
我有很多组件,而且很多时候一个组件依赖于另一个组件。在 .Net 中,如果您对任何程序集进行更改,则应更改其程序集版本以反映此更改。然而,这会在依赖链上引发连锁反应。
处理此问题的一种方法是使用绑定重定向,主要是在您知道没有引入重大更改的情况下。
我的问题是 - 绑定重定向的使用有多不受欢迎?当产品投入生产时,我是否应该始终确保没有这些?
编辑 - 应用程序是基于通用框架的各种服务。我们是这些服务的唯一开发者和支持者。没有修补程序,只是在必要时推送新的 MSI。
如果您对组件进行更灵活的版本检查,它们不会因次要版本更改而中断。( http://semver.org/ )
这些例子是
<!-- Accepts any version 6.1 and above -->
<dependency id="ExamplePackage" version="6.1" />
<!-- Accepts any version above, but not include 4.1.3. This might be
used to guarantee a dependency with a specific bug fix. -->
<dependency id="ExamplePackage" version="(4.1.3,)" />
<!-- Accepts any version up below 5.x, which might be used to prevent
pulling in a later version of a dependency that changed its interface.
However, this form is not recommended because it can be difficult to
determine the lowest version. -->
<dependency id="ExamplePackage" version="(,5.0)" />
<!-- Accepts any 1.x or 2.x version, but no 0.x or 3.x and higher versions -->
<dependency id="ExamplePackage" version="[1,3)" />
<!-- Accepts 1.3.2 up to 1.4.x, but not 1.5 and higher. -
<dependency id="ExamplePackage" version="[1.3.2,1.5)" />
来自 https://docs.microsoft.com/en-us/nuget/create-packages/dependency-versions
因此,如果您的包可以接受任何版本 xx 及更高版本,则较小的版本更改不会影响您的解决方案。