現在、InstallShieldにてインストーラを作成する予定なのですが、
Visual C++ の DLLの再配布の方法をどのようにするか悩んでいます。
msdnの「VisualC++配置方法の選択」に、3つの方法が示されているのですが、
InstallShieldを使うためマージモジュールを使ったインストーラは作成できないと考えています。
残りの2つは
(1) 再頒布可能パッケージ (VCRedist_x64.exe) を使用する方法
と
(2) Program Files\Microsoft Visual Studio 8\VC\Redist ディレクトリにあるファイルを使用し、特定の
Visual C++ アセンブリを、アプリケーションのプライベート アセンブリとしてインストールする方法
です。
アンインストールの事を考えると、(2)の「アプリケーションのプライベート アセンブリとしてインストール」する方法の方が良いかと考えたのですが、
一般的に商用にするようなアプリケーションの場合、このインストール方法は好ましくないものでしょうか?
VS2005で作成したアプリケーションのインストールは初めてなので判断しかねております。
kkkiii wrote:
> InstallShieldを使うためマージモジュールを使ったインストーラは
> 作成できないと考えています。
現在ではInstallShieldもWindows Installer エンジンを使っているので、
マージモジュールでも問題ない気がしますけど...?
# かなり古いバージョンしかないとか、あえてInstallScriptしか
# 使わないとか、そういった事情でもないかぎり、ですけど。
> アンインストールの事を考えると、(2)の「アプリケーションのプライ
> ベート アセンブリとしてインストール」する方法の方が良いかと考え
> たのですが、一般的に商用にするようなアプリケーションの場合、
> このインストール方法は好ましくないものでしょうか?
共有することを目的としないのであれば、ライブラリをローカルで
持っておくことは間違いではありません。
「一般的」な評判はどうか知りませんが、そもそもSxSはDLL Hell
対策のひとつなので、商用かどうかに関わらず、他への干渉を少し
でも避けたい場合には打って付けです。
メモリやHDD容量が乏しい時代ならともかく、多少富豪的になった
ところでそんなに苦情が出ることはない...かな?
VCのランタイムだけなら、いっそのことスタティックリンクしてしまう
とか(苦笑)。
VCのランタイムならアンインストールせずに放っておいても誰も
文句は言わないでしょうから、(1)の方法でも問題ないのでは?
システムフォルダにぶち込んだ場合は、後からインストールした
アプリケーションがそれを利用するかもしれないので、必ずしも
アンインストールできるとはかぎりませんし...。
--
植田システム設計事務所
Ueta System Design Studio
http://www.usdesign.jp/
植田真一
mailto:ue...@usdesign.jp
> > InstallShieldを使うためマージモジュールを使ったインストーラは
> > 作成できないと考えています。
> 現在ではInstallShieldもWindows Installer エンジンを使っているので、
> マージモジュールでも問題ない気がしますけど...?
私の理解不足だったようです。失礼いたしました。
> 共有することを目的としないのであれば、ライブラリをローカルで
> 持っておくことは間違いではありません。
> 「一般的」な評判はどうか知りませんが、そもそもSxSはDLL Hell
> 対策のひとつなので、商用かどうかに関わらず、他への干渉を少し
> でも避けたい場合には打って付けです。
> メモリやHDD容量が乏しい時代ならともかく、多少富豪的になった
> ところでそんなに苦情が出ることはない...かな?
おかしなやり方という訳ではないのですね。
> VCのランタイムならアンインストールせずに放っておいても誰も
> 文句は言わないでしょうから、(1)の方法でも問題ないのでは?
> システムフォルダにぶち込んだ場合は、後からインストールした
> アプリケーションがそれを利用するかもしれないので、必ずしも
> アンインストールできるとはかぎりませんし...。
なるほどそうですね。
ライブラリをローカルに持つことも変ではないし、VCのランタイムをインストールしてもよいし、InstallShieldでもマージモジュールでも問題ないということがわかりました。どの方法が適切かもう一度検討してみたいと思います。
ありがとうございました。
kkkiii