私はオープンソースのC#アプリケーションを開発しています。しばらくの間、私は自分でコーディングした基本的な.NETインストーラーを使用してきました。ただし、最近の変更では、インストーラーに多数のファイルを追加する必要があるため、これは実用的ではなくなりました。リリースごとに変更される可能性があります。ZIPファイルも実用的ではありません。
オンラインでいくつかのチェックを行いましたが、MSI、ClickOnce、自己解凍型ZIP、および(最も有望な)NSISシステムがたくさんあります。どれも私のニーズにぴったり合っていないようですので、どのシステムを使用するかについてのアドバイスを探しています。
私のプログラムの実際のインストールは非常に簡単です。基本的に、bin \ Releaseディレクトリ(およびすべてのサブディレクトリ)をクライアントのコンピュータにコピーする必要があります。私は、すべてのファイルを.NETインストーラーに埋め込み、何がどこに行くのかを示すファイルテーブルを維持することで、これをややアドホックに実現してきました。
残念ながら、アプリをローカライズしただけです。現在、30以上の.resxファイル(dllにコンパイルされ、Visual Studioによってより多くのサブディレクトリに配置されています)があり、明らかに、30以上のフォルダーとDLLをインストーラーに追加することは実用的ではありません。したがって、なぜ私はこの検索をしているのですか。
他にもいくつかの要件があります。
- インストーラーは、事前定義されたディレクトリで指定された.exeを検索する必要があります。(私のアプリは置き換えのドロップになるように設計されています).exeが見つからない場合は、その場所の入力を求める必要があります
- インストーラーは、「OldApp.exe.bak」が存在することを確認する必要があります。そうでない場合は、「OldApp.exe」の名前を「OldApp.exe.bak」に変更する必要があります
- インストーラーはファイルを更新する必要があります。つまり、「Culture.de.dll」が変更されていない場合、インストーラーはそれをそのままにします。
- インストーラーは、すべての.NET IDE(VS、SharpDevelop、Monoなど)のすべてのWindowsバージョンで動作する必要がありますが、他のプラットフォームで動作する必要はありません。
- ソリューションをビルドすると、インストーラーが自動的に再生成されます。つまり、「ビルド後」セクションで実行可能である必要があります。
- インストーラーの世代は、ソースコードリポジトリに追加できる必要があります。これは、私のアプリのソースをダウンロードした人なら誰でもインストーラーをコンパイルできるようにするためです。
長い投稿で申し訳ありませんが、投稿数は少ないほうがいいと思いました。