質問: Visual Studioのプロジェクトでソースは共通、 起動時の引数によって動作が一部変わるというソフトウェアを作成しています。 実行環境では、ソース自体は同一ですが、 別のソフトウェアとしてインストールできるようにしたいと考えています。 そこで、ソースは共通のまま .Exeファイル名 アセンブリ情報(タイトルや製品名など)を変えて、 コンパイルし、インストーラーを作成したいと考えています。 今後、このソフトウェアはソースは共通のまま、 バージョンアップしていくことが予想されます。 上手な作成方法・管理方法があれば教えてください。 よろしくお願いします。 補足 編集・追記依頼ありがとうございます。不明確だった点お詫びします。 「起動時の引数によって動作が変わる」のは、 開発時、同一のソースで一部別の動作(具体的にはフォームのタイトルや、 フォームの一部要素の表示非表示)を実現するため 以下のような設計をしていました。 sample.exe aaa (フォームのタイトルがaaaと表示、フォームのテキストボックス全て表示) sample.exe bbb (フォームのタイトルがbbbと表示、フォームのテキストボックス一部非表示) これを出荷時には、 a.exe、アセンブリ情報(タイトル「aaa」、製品名「aaaシステム」) b.exe 同(タイトル「bbb」、製品名「bbbシステム」) として作成したいということを意図しています。
回答: こんにちは。 単純なプロジェクトプロパティの変更のみであれば、リネームしたプロジェクトファイルを2つ用意することでコンパイル情報を変更することが出来ますが、アセンブリ情報を変更するとなるとAssemblyInfoにも差分が発生します。 Xamarinなどで採用されているように、共通部分のみを共通プロジェクト(DLL)として用意し、アプリケーションエントリポイントを含む実行ファイルプロジェクトはそれぞれ用意するのが現実的だと思います。 起動時の引数のみを変更したいのであれば、アプリケーション自体は共通として、セットアッププロジェクト側のカスタムスクリプトでショートカットを編集することで対応できるかもしれません。