DOBON.NET DOBON.NETプログラミング掲示板過去ログ

デプロイメントでMSIに引数を渡すには?

環境/言語:[VC#.NET、Framework1.1]
分類:[.NET]

現在C#でアプリケーションを開発していて、配布用にSetupファイルを作成しています。
その際、デフォルトですと「すべてのユーザー」にチェックが付いていません。
現在はOrcaを使って配布のたびに対応する値をいじってるんですけど、
この方法だと忘れたりコンパイルのたびに直すのも不確実なのでソースで設定したいと思ってます。
こちらのサイトで「http://dobon.net/vb/dotnet/deployment/allusersdefault.html」という
記事を拝見して実践してみようかと思ったんですけど、
msiexec /i (MSIファイル名) ALLUSERS=2
↑これってどう設定するのでしょうか?
標準ですと、Setup.exeを実行するとSetup.msiが呼ばれるような気がするんですけど、Setup.exe内でこのコマンドを実行するという事でしょうか?
もしそうならその設定方法を、違っていたら実現方法を教えてください。
> msiexec /i (MSIファイル名) ALLUSERS=2
> ↑これってどう設定するのでしょうか?

このようなコマンドを実行するということです。

> 標準ですと、Setup.exeを実行するとSetup.msiが呼ばれるような気がするんですけど、Setup.exe内でこのコマンドを実行するという事でしょうか?

Setup.exe内と言うのがSetup.exeを作り変えて、上記のようなコマンドを実行させるという意味でしたら、その通りです。Visual Studioが添付するSetup.exeでは、任意のコマンドを渡してmsiexecを実行することはたぶんできません。

上記のコマンドを実行させるバッチなどを作っても良いでしょうし、Setup.exeの代わりに使えるツールもあります。

http://dobon.net/vb/dotnet/deployment/upgrades.html

の下のほうの「再インストール」をご覧ください。

> 現在はOrcaを使って配布のたびに対応する値をいじってるんですけど、
> この方法だと忘れたりコンパイルのたびに直すのも不確実なのでソースで設定したいと思ってます。

↓が参考になると思います。

MSIファイルのWindows Installerデータベースをプログラムで編集する
http://dobon.net/vb/dotnet/deployment/editwidbprogrammatically.html
> Setup.exe内と言うのがSetup.exeを作り変えて、上記のようなコマンドを実行させるという意味でしたら、その通りです。Visual Studioが添付するSetup.exeでは、任意のコマンドを渡してmsiexecを実行することはたぶんできません。
 やはり無理ですか・・・・

> ↓が参考になると思います。
>
> MSIファイルのWindows Installerデータベースをプログラムで編集する
> http://dobon.net/vb/dotnet/deployment/editwidbprogrammatically.html
これを参考にして実際にやってみました。
VBScriptの使い方が分からなかったので、「http://dobon.net/vb/dotnet/deployment/customaction.html」
を参考にカスタム動作に追加してみましたが、全てのユーザーがデフォルトになりませんでした。
何か根本的に間違っているのでしょうか?
>>MSIファイルのWindows Installerデータベースをプログラムで編集する
>>http://dobon.net/vb/dotnet/deployment/editwidbprogrammatically.html
> これを参考にして実際にやってみました。
> VBScriptの使い方が分からなかったので、「http://dobon.net/vb/dotnet/deployment/customaction.html」
> を参考にカスタム動作に追加してみましたが、全てのユーザーがデフォルトになりませんでした。
> 何か根本的に間違っているのでしょうか?

カスタム動作に追加するのではなく、このスクリプトを実行すれば、Orcaを使って編集したようにMSIのデータベースを編集できるということです。
> カスタム動作に追加するのではなく、このスクリプトを実行すれば、Orcaを使って編集したようにMSIのデータベースを編集できるということです。

なるほど、そうでしたか。
デプロイメントプロジェクトをコンパイルして自動でなるのが理想でしたが、
それでもOrcaを使うよりは簡単ですし、この方法で実践してみます。
管理人さま、ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板