会社が社内で使用しているプログラムがありますが、ベンダーにも送信されます。ベンダーバージョンは、一部の機能が欠落していることを除いて同じであり、インストーラーを使用します。 XMLファイルから2行を削除するだけでよく、外部での使用に適しています。
プロジェクトごとに個別のコードベースを維持することなく、このようなプロジェクトを作成するための「典型的な」方法はありますか?
違いがある場合、プログラムはC#で記述され、Visual Studio 2010を使用して開発され、dllとしてコンパイルされ、Windows7で実行されます。
プロジェクトごとに個別のコードベースを維持することなく、このようなプロジェクトを作成するための「典型的な」方法はありますか?
より複雑なアプローチ(構成、プラグインなど)が説明されています。しかし、比較的単純なケースでは、単純なアプローチを使用したほうがよい場合があります。つまり、手動で行うことを自動化する:
ビルドスクリプトは、それぞれのXMLを適切な場所にコピーするだけで、出荷可能なソフトウェア(つまり、バイナリと構成ファイル)を作成します。
これは、機能を含める/除外するための弱いアプローチのように聞こえます。必要なのは、1人の顧客がプログラムをバックワードエンジニアリングし、追加するXML要素を見つけ出すだけで、非表示にしたい機能にアクセスできます。
より良いアプローチは、プラグインシステムを使用することです。このシステムでは、ソフトウェアが追加機能を含むアセンブリを探しますが、そのアセンブリがない場合は正常に失敗します。
このように、個別のコードベースは必要ありません。同じソフトウェアをどこにでもインストールし、プラグインをローカルにインストールするだけです。
ライセンスに基づいて、さまざまなモジュールがロード/アクティブ化されるライセンスシステムがあります。
しかし、コードベース全体は常に同じです。