- PR -

VistaへのMSI 3.1インストール

1
投稿者投稿内容
funax
会議室デビュー日: 2002/09/05
投稿数: 8
投稿日時: 2007-10-12 17:48
こんにちは。

開発環境:WindowsXP Professional + VS2005 Professional Edition
インストール先:WindowsXP, Vista(UAC有効)
インストール実行ユーザ:管理者

上記環境で動作するインストーラを(予算の関係で)、WindowsInstaller3.1で
開発しています。

単純にファイルをインストールするだけの処理の場合は、対象の両OSとも正常に
動作します。
しかし、インストールの最後に作成したフォルダのアクセス権を変更する処理
(C#のDirectorySecurity.ModifyAccessRule()を使用)を追加した場合、vista
ではエラーメッセージ(エラーコード2869)が表示され、インストールに
失敗してしまいます。
その上、エラーメッセージボックスのOK押下後、空のメッセージボックスが
続けて表示されます。

setup.exeを右クリックし、「管理者として実行」を選択し、インストール
すれば正常に動作するため、msiでインストールした場合の権限が不足
しているものと推測しています。
だからといって空のメッセージボックスが出るのは謎ですが。。。

そこで質問です。
1.Vista(UAC有効)環境において、WindowsInstaller3.1で作成した
 インストーラ(msi)起動時に内部的に管理者権限に昇格させる
 ことは可能でしょうか?
2.上記が不可能な場合、有償ソフトを使用することなく、目的を
 実現することは可能でしょうか(WiX使用??)?

恐らくInstallShieldを購入すれば可能だとは思いますが、時期的に
今から有償ソフトを購入し、対応するのは難しい状況です。。。。

有識者の方々、ご指導よろしくお願いいたします。

IIJIMAS
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 77
投稿日時: 2007-10-12 20:03
引用:

funaxさんの書き込み (2007-10-12 17:48) より:

1.Vista(UAC有効)環境において、WindowsInstaller3.1で作成した
 インストーラ(msi)起動時に内部的に管理者権限に昇格させる
 ことは可能でしょうか?




Orca.exe(手動)やWiRunSQL.vbs(を改造するなどしてVSのセットアッププロジェクトPostBuildEventで呼ぶ)を利用して、msiのCustomActionテーブルを更新することでできそうです。

参考になるページ見つけました。
http://blogs.x2line.com/al/archive/2007/07/20/3210.aspx
funax
会議室デビュー日: 2002/09/05
投稿数: 8
投稿日時: 2007-10-15 21:00
引用:

IIJIMASさんの書き込み (2007-10-12 20:03) より:
Orca.exe(手動)やWiRunSQL.vbs(を改造するなどしてVSのセットアッププロジェクトPostBuildEventで呼ぶ)を利用して、msiのCustomActionテーブルを更新することでできそうです。

参考になるページ見つけました。
http://blogs.x2line.com/al/archive/2007/07/20/3210.aspx



IIJIMASさん、返答ありがとうございます。

上記ページを参考に検証したところ、正常に動作しました!
参考までに対応内容を載せておきます。
----------------------------------------------------------------
1.OracaにてCustomActionのinstall-rollback各Type値に2048
(1024ではなかったです。。。)を加算。
2.Oracaの[Tools]-[Options]-[Database]の"Copy embedded streams ..."
 チェックボックをチェック。
3."Save As"にて上書き保存。
----------------------------------------------------------------

ありがとうござました!


1

スキルアップ/キャリアアップ(JOB@IT)