0

多くのコンポーネントがあり、多くの場合、1 つのコンポーネントが別のコンポーネントに依存しています。.Net では、アセンブリに変更を加えた場合、そのアセンブリ バージョンを変更して、この変更を反映する必要があります。ただし、これは依存関係チェーンに波及効果を引き起こします。

これに対処する 1 つの方法は、バインディング リダイレクトを使用することです。これは、ほとんどの場合、重大な変更が導入されていないことがわかっている場合です。

私の質問は - バインディング リダイレクトの使用はどの程度嫌われているのですか? 製品が本番環境にリリースされるときは、常にそれがないようにする必要がありますか?

編集 - アプリケーションは、共通のフレームワークに基づくさまざまなサービスです。私たちは、これらのサービスの唯一の開発者でありサポーターです。ホットフィックスはなく、必要に応じて新しい 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 に答える