2011-11-09 81 views
2

我有一個Visual Studio安裝程序與用C++編寫的自定義操作。我需要從一個自定義操作啓動一個進程,但「安裝」和「提交」操作都會提升,因此我的進程也會提升。我希望新進程以普通用戶身份運行。微星C++自定義操作與非管理員權限

我看過Start exe after msi install but using current user privileges但它看起來過於複雜,並顯示沒有代碼。我沒有時間去嘗試一個未知的API。

有沒有簡單的方法?我可以使用VS安裝程序來定義非提升的自定義動作或從提升的自定義動作中執行某些操作嗎?

回答

1

Visual Studio安裝項目不支持即時自定義操作。它們全都是deferred

因此,無論是使用自定義代碼來模擬當前用戶,還是切換到另一個支持即時操作的安裝創作工具。

+0

謝謝!我知道我早晚會遇到安裝項目的限制。使用VS安裝項目非常簡潔,但我認爲它僅適用於非常基本的場景。我決定使用自定義引導程序來實現我的目標,並且這很有效。 – wpfwannabe

2

如果你只是想測試你的代碼,用Orca更新你的內置msi文件並不難。它會讓你將你的代碼添加到二進制表的dll,添加一個相應的行到customaction表,並添加到一個序列的行動。

如果您需要這種情況發生作爲您的構建過程的一部分,您可以用vbscript完成同樣的事情。該SDK附帶了用於與msi數據庫進行交互的良好示例vbscript代碼,如下所述: http://msdn.microsoft.com/en-us/library/windows/desktop/aa372865%28v=vs.85%29.aspx

+0

謝謝埃德。不,我不想使用Orca。我需要集成構建。手動操作會非常繁瑣。我會看看樣品,看看他們是否可以做我想做的。同時,我已經恢復使用自定義引導程序來完成我最初想要的操作。 – wpfwannabe