2011-05-25 123 views
11

我使用WiX開發了一個用於.NET WPF應用程序的自定義安裝程序。如果我右鍵單擊並以管理員身份運行,則工作正常,但如果沒有運行,某些組件由於權限不足而無法安裝。WiX安裝程序應始終以管理員身份運行

這些組件包括SQL Server Express 2008 R2,FoxIt Reader,ActiveX組件和其他一些組件。它還要求在新安裝的數據庫上運行一些SQL腳本 - 無論如何,它們都需要管理員權限。


我嘗試添加了InstallScope =「perMachine」和InstallPrivileges =「架空」屬性包節點,但這似乎並沒有發揮作用。

我敢肯定,這是愚蠢的,但我找不到任何參考或在線。

回答

21

我認爲,如果你只需要添加

<Property Id="MSIUSEREALADMINDETECTION" Value="1" /> 

應該解決的問題。如果不是,請告訴我,我可以再做一些檢查。

+0

謝謝 - 我會擺弄它。我應該把這個放在哪裏? – rumblefx0 2011-05-27 10:05:02

+0

它在產品元素下的任何地方。我喜歡把我的所有房產都放在底部,但這只是個人偏好。 – Adkins 2011-05-28 14:13:43

+0

謝謝......這幫助我解決了同樣的問題。 – Brandon 2011-09-20 22:31:56

0

對我來說,我應該運行一個註冊表命令,通過CustomAction WiX元素刪除一個系統環境變量,這需要管理員權限。

使用CustomAction→Impersonate =「no」爲我工作,如後所述https://stackoverflow.com/a/8657472/3205679

WiX的自定義操作代碼:

<CustomAction Id = "Uninstall_MYSYSENV" 
       Directory = "INSTALLFOLDER" 
       ExeCommand = 'cmd.exe /c &quot;reg delete  "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v MYSYSENV /f&quot;' 
       Execute = "deferred" 
       Impersonate= "no" 
       Return  = "asyncNoWait" 
       /> 

<InstallExecuteSequence> 
     <Custom Action="Uninstall_MYSYSENV" 
       After="InstallInitialize">Installed AND NOT UPGRADINGPRODUCTCODE</Custom> 
</InstallExecuteSequence> 
相關問題