私は DotNetNuke モジュールを開発しており、インストールまたは配布する前にコンパイルする必要があります。以前は、ローカルの DotNetNuke インストールの /BIN フォルダーを参照して、特定のバージョンの DotNetNuke.dll を参照していました。
このリファレンスにより、DNN 基本クラスを使用して、それらに基づいて独自のクラス セットを作成することができました。また、必要な DNN 名前空間/クラス全体でさまざまなヘルパー メソッドを使用しています。(つまり、PortalModuleBase、ModuleSettingsBase から派生クラスを作成し、Microsoft の ASP.NET 実装によって提供されるものを置き換える Localization クラスを使用します。)
これまで私が管理しているクライアント Web サイトにこれらのモジュールをインストールしていたため、直接 DLL 参照 (ローカルのコピー = True、特定のバージョン = False) を作成するこのアプローチを回避することができました。そのため、少なくとも私が開発している DotNetNuke のバージョンまたはそれ以降のバージョンでそれらを保持しています。最近では、開発中に 6.1.3.108 を参照していました。
注: これにより、次の関連 DLL がモジュールの /BIN ディレクトリに自動的にコピーされます。
- DotNetNuke.dll
- DotNetNuke.Instrumentation.dll
- dotnetnuke.log4net.dll
- DotNetNuke.Services.Syndication.dll
- DotNetNuke.Web.Client.dll
- DotNetNuke.WebControls.dll
- DotNetNuke.WebUtility.dll
これを新しいバージョンの DotNetNuke サイトにインストールすると、問題なく動作しました。これは悪いスタートではありません。
私が疑問に思っているのは、モジュールを DLL のマイナー、ビルド、またはリビジョン レベルに影響されないようにする非ハックな方法があるかどうかということです。
製品 (「ミッドレンジ」バージョンで開発された場合) が、製品の新しいバージョンだけでなく、少し前のバージョンでも動作することを確認することが私の責任であることを認識しています。そうは言っても、これらのビルド全体で徹底的なテストを行うことができると感じています. 私にとって、これは開発中に最も古いメジャー ビルドを実行するよりも優先されます。
別の言い方をすれば、私は 6.0.0.0 への参照を使用して開発したくありません。6.1.3.108 が少し前のバージョンまたはそれ以降のバージョンで動作しているなど、参照を作成する素晴らしい方法を誰かが持っていない場合にのみ、私はそれを行います。(もちろん、5.xxx や 7.xxx などの主要なバージョン変更のために別のモジュールを作成しなければならないことは問題ありません)
前もって感謝します!