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

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

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

Re[11]: VSセットアップでファイルを修復対象外としたい


(過去ログ 100 を表示中)

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

■59721 / inTopicNo.1)  VSセットアップでファイルを修復対象外としたい
  
□投稿者/ DD. (53回)-(2011/06/04(Sat) 16:02:15)

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

お世話になります。DD.です。

VS2008のセットアッププロジェクトでインストーラを作成しているのですが、
インストーラに含めているファイルで、ファイル名の変更を行っても修復されないようにしたいと思っております。

該当ファイルのVitalプロパティをFALSEにしてみたりはしたのですが、
インストール後にファイル名を変更して(もちろんインストーラで作成したショートカットから)起動をかけると、
修復を行おうとしてしまいます。

修復対象外とするにはどのような設定を行えばよいのでしょうか?

よろしくお願いします。

引用返信 編集キー/
■59722 / inTopicNo.2)  Re[1]: VSセットアップでファイルを修復対象外としたい
□投稿者/ shu (752回)-(2011/06/04(Sat) 21:33:55)
No59721 (DD. さん) に返信

ファイル名の変更でなくコピーするとか、または最初からセットアップに含めないとか。
引用返信 編集キー/
■59723 / inTopicNo.3)  Re[2]: VSセットアップでファイルを修復対象外としたい
□投稿者/ DD. (54回)-(2011/06/04(Sat) 22:39:36)
shuさん、回答ありがとうございます。

残念ながら、現状最初から含めていてかつ、ファイル名変更に対応する必要があるんです。。。
引用返信 編集キー/
■59725 / inTopicNo.4)  Re[3]: VSセットアップでファイルを修復対象外としたい
□投稿者/ ザイーガ (1回)-(2011/06/05(Sun) 00:24:41)
> 残念ながら、現状最初から含めていてかつ、ファイル名変更に対応する必要があるんです。。。

「ファイル名変更に対応する」とは、インストール後、インストールしたファイルのファイル名を
変更した後にインストーラーで修復を行ったとき、ファイル名を変更したものは消えてしまうところを、
ファイル名を変更したものはそのまま残す、ということでしょうか?
ところで、ファイル名が変更されるファイルはどこにインストールされるのでしょうか?
また、どのような理由でファイル名が変更されるのでしょうか?
もし、Program Files内にインストールされるのであれば、通常、ファイル名の変更は管理者権限がないと
できないと思うのですが。
引用返信 編集キー/
■59736 / inTopicNo.5)  Re[3]: VSセットアップでファイルを修復対象外としたい
□投稿者/ shu (753回)-(2011/06/05(Sun) 21:52:03)
No59723 (DD. さん) に返信
> shuさん、回答ありがとうございます。
>
> 残念ながら、現状最初から含めていてかつ、ファイル名変更に対応する必要があるんです。。。

セットアッププロジェクトの設定だけでは無理だと思いますよ。セットアップしたファイルが
欠損していることを感知して修復が走るのだからセットアップに含めたファイルのファイル名が
変わってしまっては駄目です。

ショートカット自体をセットアップに作らせるのではなく、自分で作成するようにするとか。

引用返信 編集キー/
■59739 / inTopicNo.6)  Re[4]: VSセットアップでファイルを修復対象外としたい
□投稿者/ Azulean (755回)-(2011/06/05(Sun) 22:27:28)
すべて修復しないとできるのであれば、アドバタイズショートカットをやめるというのも手ですね。
ただ、Visual Studio の IDE からは設定できないので、いろいろと手間がかかるかもしれませんが。

# 「アドバタイズショートカット」で検索すれば、何か出てくるかと。
引用返信 編集キー/
■59743 / inTopicNo.7)  Re[5]: VSセットアップでファイルを修復対象外としたい
□投稿者/ shu (755回)-(2011/06/06(Mon) 08:57:24)
カスタム動作でコピーを作るとかも出来るかも。

例)実際に今セットアップに含めているファイル名をA
としたとき代わりにA.orgを含めるようにしておき、
カスタム動作でA.orgからAにコピーをする。

カスタム動作は実行可能ファイルかソリューション内のプロジェクト出力が
指定出来るので、一個プロジェクトを追加してそういう動作のExeを出力するように
するとよいかと思います。
引用返信 編集キー/
■59759 / inTopicNo.8)  Re[6]: VSセットアップでファイルを修復対象外としたい
□投稿者/ とっちゃん (581回)-(2011/06/06(Mon) 17:03:33)
とっちゃん さんの Web サイト
一応正論だけ。

インストーラとは。。。
「利用者に使っていただく製品を安全確実に起動できるようにして、不要になったら可能な限りきれいさっぱり消し去る仕組みを持つアプリケーションの一般的名称」
です。
ま、正論だけじゃ世の中渡っていけないから、我々技術者には理不尽な仕事が舞い降りて来るわけですが。



でも、実行時にリネームするのなら、リネームする代わりにコピーするように変更するのが一番ローコストだと思いますよ。
それなら修復されることはありませんし、リネームした結果存在するものも存在し続けますし。

ま、なんでリネームする必要があるのかわからない以上どうにもならないけどw
見えると困るなら、隠しファイル属性とかそういうものもありますね。どうなるかわからんですけどw

引用返信 編集キー/
■59773 / inTopicNo.9)  Re[7]: VSセットアップでファイルを修復対象外としたい
□投稿者/ DD. (55回)-(2011/06/06(Mon) 22:24:35)
皆様ご回答ありがとうございます。

返信が遅れてしまいました。
ひとまず先に結果を報告すると、「アドバタイズショートカット」をキーワードにさせて頂き、
VSセットアッププロジェクトでmsi作成後にOrcaでDISABLEADVTSHORTCUTS=1にて通常ショートカットとするよう変更することで対応しました。

一応、とっちゃんさんが過去に"通常ショートカットだからといって完全に修復が実行されないわけではない"とコメントしてあるものも読ませて頂きましたが、
とりあえず上記でいきたいと思います。

ファイル名の変更に対応する件に関して、色々ツッコミ頂いていますが少し説明させて頂きますと、
該当ファイルはデフォルトのフォーマットとしてセットアップで提供するもので、
後々、デフォルトフォーマットのファイル名後ろに改定番号を付与したものを使用して、
その際には既存のものは削除(削除ではなくファイル名変更で質問させて頂いたのは、とりあえず自動修復除外を簡易に行える方法があるか確認する上で特に理由があったわけではありません)
する必要があるとのことで今回の質問に至りました。

ご指摘の中にありました通り、修復対象外とする以外でも回避方法はいくつかあるかと思いますが、
あくまで修復対象外とするための方法を興味という意味でも知りたかったところです。

これにて解決とさせて頂きます。
(また、とっちゃんさんのブログや記事などよく読ませて頂きます)

解決済み
引用返信 編集キー/
■59781 / inTopicNo.10)  Re[8]: VSセットアップでファイルを修復対象外としたい
□投稿者/ shu (760回)-(2011/06/07(Tue) 08:23:17)
2011/06/07(Tue) 08:23:41 編集(投稿者)

No59773 (DD. さん) に返信

> ファイル名の変更に対応する件に関して、色々ツッコミ頂いていますが少し説明させて頂きますと、
> 該当ファイルはデフォルトのフォーマットとしてセットアップで提供するもので、
> 後々、デフォルトフォーマットのファイル名後ろに改定番号を付与したものを使用して、
> その際には既存のものは削除(削除ではなくファイル名変更で質問させて頂いたのは、とりあえず自動修復除外を簡易に行える方法があるか確認する上で特に理由があったわけではありません)
> する必要があるとのことで今回の質問に至りました。
>
> ご指摘の中にありました通り、修復対象外とする以外でも回避方法はいくつかあるかと思いますが、
> あくまで修復対象外とするための方法を興味という意味でも知りたかったところです。


この内容は最初に書かれたほうが良かった気がします。

解決済み
引用返信 編集キー/
■59809 / inTopicNo.11)  Re[8]: VSセットアップでファイルを修復対象外としたい
□投稿者/ とっちゃん (582回)-(2011/06/07(Tue) 19:12:00)
とっちゃん さんの Web サイト
No59773 (DD. さん) に返信

> 返信が遅れてしまいました。
> ひとまず先に結果を報告すると、「アドバタイズショートカット」をキーワードにさせて頂き、
> VSセットアッププロジェクトでmsi作成後にOrcaでDISABLEADVTSHORTCUTS=1にて通常ショートカットとするよう変更することで対応しました。
>
アドバタイズショートカットだけが自動修復されるショートカットではありませんよ。
WindowsInstaller が作るショートカットはどういう形式であれ自動修復対象となるショートカットです。
内部に修復のための諸情報が隠しデータとして埋め込まれています。どういうデータ構造なのか?などはOS依存情報なのでわかりません。
なので、別マシンとかにコピーするとおかしなことになる場合も起こりえます。普通はやらないでしょうけどw


> ファイル名の変更に対応する件に関して、色々ツッコミ頂いていますが少し説明させて頂きますと、
> 該当ファイルはデフォルトのフォーマットとしてセットアップで提供するもので、
> 後々、デフォルトフォーマットのファイル名後ろに改定番号を付与したものを使用して、
> その際には既存のものは削除(削除ではなくファイル名変更で質問させて頂いたのは、とりあえず自動修復除外を簡易に行える方法があるか確認する上で特に理由があったわけではありません)
> する必要があるとのことで今回の質問に至りました。
>
インストーラでは初期フォーマットとして提供しておき、
後々何らかの方法でフォーマット改訂情報を配信、その時点で既存のものは削除して新しいフォーマットのデータを改訂番号付きで
別途用意するということですか?

それなら、改訂情報の配信方法をアップデータによる提供にすれば解決できそうな気がします。

このあたりは詳細をちゃんと聞いてみないとわからんですけどね。
削除と別物(ファイル名を含めて)に置きかえとは別です。


> (また、とっちゃんさんのブログや記事などよく読ませて頂きます)
>
ありがとうございます。最近あんまり書いてないですけどw

一応解決済みにしておきます。

解決済み
引用返信 編集キー/
■59822 / inTopicNo.12)  Re[9]: VSセットアップでファイルを修復対象外としたい
□投稿者/ DD. (56回)-(2011/06/07(Tue) 21:20:39)
> この内容は最初に書かれたほうが良かった気がします。
ごもっとも^^;

このプロパティを設定すればやりたいことできるよ!ってさくっと回答頂けるような内容かなと踏んでいたのが間違いでした。。。

結果混乱させるようなことになってしまって申し訳ないです。

解決済み
引用返信 編集キー/
■59825 / inTopicNo.13)  Re[9]: VSセットアップでファイルを修復対象外としたい
□投稿者/ DD. (57回)-(2011/06/07(Tue) 21:28:49)
>WindowsInstaller が作るショートカットはどういう形式であれ自動修復対象となるショートカットです。
なるほど。そうなんですね。

>なので、別マシンとかにコピーするとおかしなことになる場合も起こりえます。普通はやらないでしょうけどw
気をつけます^^;


えっと、一応。
ファイルはこちらが把握しているものではありません。
使用側がフォーマットの更新を行います。
初期フォーマットとして最初にインストーラに含めていてほしいと依頼されただけとなります。
その後の改定はこちらが&#22169;むことはなく、ただ更新時にファイル名だけ異なるものになることだけ言われてるってかんじです。(既存のものは消しちゃって残らない)

引用返信 編集キー/
■59834 / inTopicNo.14)  Re[10]: VSセットアップでファイルを修復対象外としたい
□投稿者/ とっちゃん (583回)-(2011/06/08(Wed) 12:32:10)
とっちゃん さんの Web サイト
No59825 (DD. さん) に返信
> えっと、一応。
> ファイルはこちらが把握しているものではありません。
> 使用側がフォーマットの更新を行います。
> 初期フォーマットとして最初にインストーラに含めていてほしいと依頼されただけとなります。
> その後の改定はこちらが&#22169;むことはなく、ただ更新時にファイル名だけ異なるものになることだけ言われてるってかんじです。(既存のものは消しちゃって残らない)
>
ふむ。。。であるなら、59743 で shu さんが書いていますが、カスタム動作でコピーするかその場生成するかしたほうがいいです。
それなら、インストーラのあずかり知らぬ部分で処理できるので、修復が行われることもありません。
#アンインストールで削除するかどうかはカスタム動作としてそれを用意するかに依存

その場で生成が難しい場合は、あらかじめオリジナルのファイル名とはかぶらない(拡張子などでも絞り込めないようなもの)名前でファイルを用意しておき
それから本来生成されるべきファイル名のものとしてコピーしておくのが良いと思いますよ。

あとは、運用の問題ですが、Program Files 配下へのファイル書き込みアクセスは高い権限(管理者権限)で動作していないとできないので
早晩どこかで破たんする可能性が高い。。。という点もお忘れなく。

この辺は詳細がわからないと何とも言えませんけどね。

引用返信 編集キー/
■59848 / inTopicNo.15)  Re[11]: VSセットアップでファイルを修復対象外としたい
□投稿者/ DD. (58回)-(2011/06/08(Wed) 22:34:12)
> ふむ。。。であるなら、59743 で shu さんが書いていますが、カスタム動作でコピーするかその場生成するかしたほうがいいです。
> それなら、インストーラのあずかり知らぬ部分で処理できるので、修復が行われることもありません。
> #アンインストールで削除するかどうかはカスタム動作としてそれを用意するかに依存
そうですね。

とっちゃんさんが"59759"で述べてらっしゃる「インストーラとは」のように、
本来インストーラが担うべき責務(というには言いすぎかもしれませんが)から逸脱してしまうような動作をユーザに提供しようと考えることはよくないと考えさせられました。

今回色んな解決策を皆様から提供頂けた事は非常に勉強になります。
今後は、様々な点からインストーラを作成する上でよりよいやり方を選択できるように努力していかないとな〜と思います。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -