Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Visual C++ の DLL を再配布する方法

905 views
Skip to first unread message

kkkiii

unread,
Nov 28, 2007, 3:42:02 AM11/28/07
to
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

unread,
Nov 30, 2007, 6:50:00 AM11/30/07
to
こんにちは、植田です。

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


kkkiii

unread,
Dec 6, 2007, 6:59:02 AM12/6/07
to
植田さま
kkkiiiです。
返信ありとうございました。

> > InstallShieldを使うためマージモジュールを使ったインストーラは
> > 作成できないと考えています。
> 現在ではInstallShieldもWindows Installer エンジンを使っているので、
> マージモジュールでも問題ない気がしますけど...?

私の理解不足だったようです。失礼いたしました。



> 共有することを目的としないのであれば、ライブラリをローカルで
> 持っておくことは間違いではありません。
> 「一般的」な評判はどうか知りませんが、そもそもSxSはDLL Hell
> 対策のひとつなので、商用かどうかに関わらず、他への干渉を少し
> でも避けたい場合には打って付けです。
> メモリやHDD容量が乏しい時代ならともかく、多少富豪的になった
> ところでそんなに苦情が出ることはない...かな?

おかしなやり方という訳ではないのですね。

> VCのランタイムならアンインストールせずに放っておいても誰も
> 文句は言わないでしょうから、(1)の方法でも問題ないのでは?
> システムフォルダにぶち込んだ場合は、後からインストールした
> アプリケーションがそれを利用するかもしれないので、必ずしも
> アンインストールできるとはかぎりませんし...。

なるほどそうですね。

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

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

kkkiii


0 new messages