C#で書いたソフトの配布と7-Zipのライセンス

VisualStudio2005では、セットアッププロジェクトと言うのが作成できて、インストーラが簡単に作れるのだけども、そのときに.NET Framework2.0やWindowsInstallerも自動的にインストールされるように設定できる。C#で書いたアプリをCD-ROMなどで配布する場合は、これを利用するのがお手軽である。


以前、Windows2000の場合、Windows Installer3.0をインストールする必要がある(→id:yaneurao:20060524)と書いたが、これは、マイクロソフト公式でそう書かれていたのだけども、実際はWindows Installer2.0のほうをWindows2000にインストールすることが出来るようなので、こちらを指定しておけば良いようだ。


インターネット経由で自分の作ったアプリを配布したい場合、.NET Framework2.0もバンドルしてしまいたいということもあるだろう。バンドル自体は、上の方法で簡単に出来るのだけども、ファイルが複数になると配布が大変なのでzipか何らかのアーカイバでファイルをひとまとめにしたい。


zipはWindowsXPではクリーンインストールされた状態でも解凍できるのだけども、Windows2000以前だとそうもいかない。zip解凍のためのアナウンスを配布するときに書くのも面倒である。そこで、7-Zipの自己解凍形式を用いることを考える。


問題は、7-ZipのライセンスはGNU LGPLなのだが、自己解凍形式にして配布することが許されているのか、ということだ。id:O-sakaに聞いたところ、以下とのこと。(id:O-saka:20060706#p2)


SFX License Question

上記の質問に開発者の Igor Pavlov が「I don't think that it contradicts LGPL.
So you can use it.」と答えているので、LGPL に従う必要はないでしょう。

よし、C#で書いたプログラムの配布は、これにしよう。


trackbackid:O-sakaから補足があったので引用。


私が 7-Zip を勧めたのは、

7-Zip 形式 (拡張子 .7z) の圧縮率が優れていること
id:yaneurao さんの記事を読んだだけでは、7-Zip を知らない読者には Zip 形式
(拡張子 .zip) の自己解凍ファイルを作るように見えてしまうかもしれません。
私が勧めたいのは Zip 形式ではなく 7-Zip 形式です。

Firefoxインストーラーなどで使われている実績があること
FirefoxWindowsインストーラーには 7-Zip が使われています。

オープンソースであるため自己解凍モジュールの自作が容易なこと
標準のモジュールはカスタマイズ性が高いとは言えません。
しかし、ソースが公開されているため、やろうと思えばどんな自己解凍モジュールでも
自作出来ます。もっとも、その場合は NSIS*1 など 7-Zip に対応したインストーラーを
使った方が楽かもしれません。

などの理由からです。


7-zipによる自己解凍後の自動実行書庫の作り方をまとめたので参考にどうぞ。
id:yaneurao:20061010