0

我有很多组件,而且很多时候一个组件依赖于另一个组件。在 .Net 中,如果您对任何程序集进行更改,则应更改其程序集版本以反映此更改。然而,这会在依赖链上引发连锁反应。

处理此问题的一种方法是使用绑定重定向,主要是在您知道没有引入重大更改的情况下。

我的问题是 - 绑定重定向的使用有多不受欢迎?当产品投入生产时,我是否应该始终确保没有这些?

编辑 - 应用程序是基于通用框架的各种服务。我们是这些服务的唯一开发者和支持者。没有修补程序,只是在必要时推送新的 MSI。

4

1 回答 1

1

如果您对组件进行更灵活的版本检查,它们不会因次要版本更改而中断。( 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 及更高版本,则较小的版本更改不会影响您的解决方案。

于 2017-07-31T11:30:49.623 回答