Discussion:
Visual C++ の DLL を再配布する方法
(too old to reply)
kkkiii
2007-11-28 08:42:02 UTC
Permalink
VisualStudio2005で作成した x64 C++アプリケーションのインストール方法について教えてください。

現在、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で作成したアプリケーションのインストールは初めてなので判断しかねております。
UETA, Shin-ichi
2007-11-30 11:50:00 UTC
Permalink
こんにちは、植田です。
Post by kkkiii
InstallShieldを使うためマージモジュールを使ったインストーラは
作成できないと考えています。
現在ではInstallShieldもWindows Installer エンジンを使っているので、
マージモジュールでも問題ない気がしますけど...?

# かなり古いバージョンしかないとか、あえてInstallScriptしか
# 使わないとか、そういった事情でもないかぎり、ですけど。
Post by kkkiii
アンインストールの事を考えると、(2)の「アプリケーションのプライ
ベート アセンブリとしてインストール」する方法の方が良いかと考え
たのですが、一般的に商用にするようなアプリケーションの場合、
このインストール方法は好ましくないものでしょうか?
共有することを目的としないのであれば、ライブラリをローカルで
持っておくことは間違いではありません。
「一般的」な評判はどうか知りませんが、そもそもSxSはDLL Hell
対策のひとつなので、商用かどうかに関わらず、他への干渉を少し
でも避けたい場合には打って付けです。
メモリやHDD容量が乏しい時代ならともかく、多少富豪的になった
ところでそんなに苦情が出ることはない...かな?

VCのランタイムだけなら、いっそのことスタティックリンクしてしまう
とか(苦笑)。

VCのランタイムならアンインストールせずに放っておいても誰も
文句は言わないでしょうから、(1)の方法でも問題ないのでは?
システムフォルダにぶち込んだ場合は、後からインストールした
アプリケーションがそれを利用するかもしれないので、必ずしも
アンインストールできるとはかぎりませんし...。
--
植田システム設計事務所
Ueta System Design Studio
http://www.usdesign.jp/
植田真一
mailto:***@usdesign.jp
kkkiii
2007-12-06 11:59:02 UTC
Permalink
植田さま
kkkiiiです。
返信ありとうございました。
Post by UETA, Shin-ichi
Post by kkkiii
InstallShieldを使うためマージモジュールを使ったインストーラは
作成できないと考えています。
現在ではInstallShieldもWindows Installer エンジンを使っているので、
マージモジュールでも問題ない気がしますけど...?
私の理解不足だったようです。失礼いたしました。
Post by UETA, Shin-ichi
共有することを目的としないのであれば、ライブラリをローカルで
持っておくことは間違いではありません。
「一般的」な評判はどうか知りませんが、そもそもSxSはDLL Hell
対策のひとつなので、商用かどうかに関わらず、他への干渉を少し
でも避けたい場合には打って付けです。
メモリやHDD容量が乏しい時代ならともかく、多少富豪的になった
ところでそんなに苦情が出ることはない...かな?
おかしなやり方という訳ではないのですね。
Post by UETA, Shin-ichi
VCのランタイムならアンインストールせずに放っておいても誰も
文句は言わないでしょうから、(1)の方法でも問題ないのでは?
システムフォルダにぶち込んだ場合は、後からインストールした
アプリケーションがそれを利用するかもしれないので、必ずしも
アンインストールできるとはかぎりませんし...。
なるほどそうですね。

ライブラリをローカルに持つことも変ではないし、VCのランタイムをインストールしてもよいし、InstallShieldでもマージモジュールでも問題ないということがわかりました。どの方法が適切かもう一度検討してみたいと思います。

ありがとうございました。

kkkiii

Loading...