2011-11-09 10 views
2

私はC++で書かれたカスタムアクションを持つVisual Studioセットアップを持っています。カスタムアクションからプロセスを起動する必要がありますが、InstallアクションとCommitアクションが両方とも実行されているため、プロセスが高くなっています。新しいプロセスを通常のユーザーとして実行します。非管理者特権を持つMSI C++カスタムアクション

私はStart exe after msi install but using current user privilegesを見ましたが、それはあまりにも複雑でコードを示していません。未知のAPIを試す時間がありません。

簡単な方法はありますか? VS Setupを使用して昇格されていないカスタムアクションを定義したり、昇格したカスタムアクションから何かを行うことはできますか?

答えて

1

Visual Studioセットアッププロジェクトでは、即時カスタムアクションはサポートされていません。デフォルトではすべてdeferredです。

したがって、カスタムコードを使用して現在のユーザーを偽装するか、即時アクションをサポートする別のセットアップオーサリングツールに切り替えることができます。

+0

ありがとうございます!私は遅かれ​​早かれセットアッププロジェクトの制限を打つことを知っていた。 VSセットアッププロジェクトを使用するのはとても素敵ですが、非常に基本的なシナリオの場合にのみ十分だと思います。私は目標を達成するためにカスタムブートストラップを使うことにしました。これはうまくいきます。 – wpfwannabe

2

コードをテストしたいだけなら、ビルドしたmsiファイルをOrcaで更新するのは難しくありません。これはバイナリテーブルにコード付きdllを追加し、対応する行をcustomactionテーブルに追加し、アクションをシーケンスに追加させます。

これをビルドプロセスの一部として実行する必要がある場合は、同じことをvbscriptで実行できます。 SDKには、ここに記載されているように、msiデータベースとやりとりするためのサンプルVBScriptコードが付属しています。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa372865%28v=vs.85%29.aspx

+0

ありがとうございます。いいえ、私はオルカを使いたくありません。私は統合されたビルドが必要です。手動で行う必要があるのは非常に面倒です。私はサンプルを見て、それらが私が欲しいものをするために作られているかどうかを見ます。その間、私は最初に欲しかったことを行うためにカスタムブートストラップを使用することに戻りました。 – wpfwannabe

関連する問題