C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: インストーラに含めるファイルを、構成毎に切り替える方法


(過去ログ 126 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■75026 / inTopicNo.1)  インストーラに含めるファイルを、構成毎に切り替える方法
  
□投稿者/ TAK (1回)-(2015/02/19(Thu) 20:20:20)

分類:[インストーラ全般] 

お世話になっております

当方、Visual Studio2010 Professional Ver.10, SP1Rel/ .NET Framework4を使用しております。

表題にある様に、構成毎にインストーラに含めるファイルを切り替える方法を、探しております。
例えば、以下の構成のソリューションがあったとして、[インストーラ]にdoc_a.doc, doc_b.docのファイルが含まれているとします

ソリューション
  +ビルドプロジェクト
  +インストーラプロジェクト(セットアッププロジェクトによって作られたVisual Studioインストーラ)
    -doc_a.doc
    -doc_b.doc

・構成モードがRelease_aの時は、doc_a.docを含めるが、doc_b.docはインストーラに含めない
・構成モードがRelease_bの時は、doc_b.docを含めるが、doc_a.docはインストーラに含めない

という様に、構成切り替えによって、ソースコードのビルドアクションが切り替わる様な切り替えは、可能なのでしょうか?
もし出来ない場合は、

ソリューション
  +ビルドプロジェクト
  +インストーラプロジェクト_a
    -doc_a.doc
  +インストーラプロジェクト_b
    -doc_b.doc

の様に、インストーラプロジェクト_bを作成し、含めるファイルを変える事で、切り替えるしかないのでしょうか?
もしくは、InstallShield LEなら可能なのでしょうか?

どなたかご教授よろしくお願い致します

引用返信 編集キー/
■75033 / inTopicNo.2)  Re[1]: インストーラに含めるファイルを、構成毎に切り替える方法
□投稿者/ とっちゃん (295回)-(2015/02/20(Fri) 10:45:24)
とっちゃん さんの Web サイト
No75026 (TAK さん) に返信
> ソリューション
>   +ビルドプロジェクト
>   +インストーラプロジェクト(セットアッププロジェクトによって作られたVisual Studioインストーラ)
>     -doc_a.doc
>     -doc_b.doc
>
> ・構成モードがRelease_aの時は、doc_a.docを含めるが、doc_b.docはインストーラに含めない
> ・構成モードがRelease_bの時は、doc_b.docを含めるが、doc_a.docはインストーラに含めない
>
インストーラは、ファイル構成が変わるごとに ProductCode という一意識別子を
変更する必要があります(インストーラの一意識別子は、世界で唯一の値になるようにGUIDを用いている)。

そのため、上記のように構成が変わる場合、ProductCodeを変更して管理できる仕組みが必要になるのですが
VSのセットアッププロジェクト(VS2013で機能拡張として復活したセットアッププロジェクトでも同じ)では
プロジェクト構成ごとにProductCodeを変更することができないため、これを実現する手段がありません。
(仕組みとして提供されていないので小細工しようと思っても実現できない)。

なので、VSのセットアッププロジェクトを使う限りは、

> ソリューション
>   +ビルドプロジェクト
>   +インストーラプロジェクト_a
>     -doc_a.doc
>   +インストーラプロジェクト_b
>     -doc_b.doc
>
のパターンで用意するしかありません。

InstallShield LE にも、構成ごとに ProductCode を変えるという仕組みがないと思うので
おそらくできないと思います。

引用返信 編集キー/
■75038 / inTopicNo.3)  Re[2]: インストーラに含めるファイルを、構成毎に切り替える方法
□投稿者/ TAK (3回)-(2015/02/22(Sun) 02:30:19)
詳しい御説明ありがとうございます!

>>ソリューション
>>  +ビルドプロジェクト
>>  +インストーラプロジェクト_a
>>    -doc_a.doc
>>  +インストーラプロジェクト_b
>>    -doc_b.doc

この形での実装を検討をしてみます
助かりました。ありがとうございました。



No75033 (とっちゃん さん) に返信
> ■No75026 (TAK さん) に返信
>>ソリューション
>>  +ビルドプロジェクト
>>  +インストーラプロジェクト(セットアッププロジェクトによって作られたVisual Studioインストーラ)
>>    -doc_a.doc
>>    -doc_b.doc
>>
>>・構成モードがRelease_aの時は、doc_a.docを含めるが、doc_b.docはインストーラに含めない
>>・構成モードがRelease_bの時は、doc_b.docを含めるが、doc_a.docはインストーラに含めない
>>
> インストーラは、ファイル構成が変わるごとに ProductCode という一意識別子を
> 変更する必要があります(インストーラの一意識別子は、世界で唯一の値になるようにGUIDを用いている)。
>
> そのため、上記のように構成が変わる場合、ProductCodeを変更して管理できる仕組みが必要になるのですが
> VSのセットアッププロジェクト(VS2013で機能拡張として復活したセットアッププロジェクトでも同じ)では
> プロジェクト構成ごとにProductCodeを変更することができないため、これを実現する手段がありません。
> (仕組みとして提供されていないので小細工しようと思っても実現できない)。
>
> なので、VSのセットアッププロジェクトを使う限りは、
>
>>ソリューション
>>  +ビルドプロジェクト
>>  +インストーラプロジェクト_a
>>    -doc_a.doc
>>  +インストーラプロジェクト_b
>>    -doc_b.doc
>>
> のパターンで用意するしかありません。
>
> InstallShield LE にも、構成ごとに ProductCode を変えるという仕組みがないと思うので
> おそらくできないと思います。
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -