2013-02-08 16 views
5

我在visual studio 2010中爲c#outlook加載項(Office 2010/2013)和其他獨立工具使用安裝項目。在安裝過程中,我終止了Outlook的所有實例,之後我想重新啓動一個Outlook實例。Visual Studio安裝項目:以當前用戶而非系統帳戶運行CustomActions/process

在我的插件項目中,我添加了一個installerclass,並增加了InstallEventHandler(AfterInstallEventHandler),其中我執行

Process.Start("Outlook"); 

而同樣的命令只是在等編譯的類在Outlook中,在安裝程序的Outlook環境中開啓在配置文件創建助手中。

我也嘗試在提交後將所說的工作編譯的exe作爲用戶定義的操作運行,但是會出現同樣的問題。

任何解決方案或解釋將不勝感激。

+3

您可以在S上自己回答問題tackOverflow。我鼓勵你編輯你的問題,並將你找到的解決方案作爲答案,以幫助其他人。 – 2013-02-11 14:07:00

+0

謝謝,編輯。 – 2013-02-11 14:20:09

回答

4

SOLUTION:

安裝運行在系統帳戶。因此,所創建的過程也在所述帳戶中運行,而不是以當前登錄的用戶運行。

我創建的附加項目(InstallHelper),其中包括所述

Process.Start("Outlook"); 

我添加InstallHelper如CustomAction在我的設置項目Commit和改變InstallerClass爲False CustomAction的屬性。然後我複製WiRunSql.vbs到項目文件夾,並增加了PostBuildEvent到安裝項目:

@echo off 
cscript //nologo "$(ProjectDir)WiRunSql.vbs" "$(BuiltOutputPath)" "UPDATE CustomAction SET Type=1554 WHERE Type=3602" 

3602:

  • 將0x800(msidbCustomActionTypeNoImpersonate)
  • 0×400(msidbCustomActionTypeInScript)
  • 在0x200( (自定義動作類型18:exe)

1554:

  • 0×400(msidbCustomActionTypeInScript)
  • 在0x200(msidbCustomActionTypeCommit)
  • ×12(自定義操作類型18:EXE)

參見: msdn: Custom Action In-Script Execution Options

的類型-change刪除了msidbCustomActionTypeNoImpersonate(0x00000800),s的位o InstallHelper和創建的進程作爲登錄用戶運行,而不是SYSTEM。

或者,這些更改可以通過打開orca中的msi(必須在每次構建後重復,因此我更喜歡腳本更改)。

2

在附加到前面的答案(我花了很多時間來了解這一點):WiRunSql.vbs的

文字對我來說: (對你來說也將包含參數2更新腳本參數)

(對我來說PostBuildevent是

@echo off 
cscript //nologo "$(ProjectDir)WiRunSql.vbs" "$(BuiltOuputPath)" 

Dim filename, installer, database 
filename = WScript.Arguments(0) 
Set installer = CreateObject("WindowsInstaller.Installer") 
Set database = installer.OpenDatabase(filename, 1) 
sql = "UPDATE `CustomAction` SET `Type`= 1554 WHERE `Type`= 3602" 
Set view = database.OpenView(sql) 
view.Execute 
view.Close 
database.Commit 

您可以測試你的腳本命令PROMT前:

cscript "C:\Projects\YourProject\WiRunSql.vbs" "C:\Projects\YourProject\Debug\Setup.msi" 

腳本這需要看錯誤

要看看你可以使用ORCA https://support.microsoft.com/en-us/kb/255905

新類型值也期待: http://www.codeproject.com/Articles/383481/Editing-an-MSI-Database http://integr8consulting.blogspot.ru/2012/04/microsoft-installer-custom-actions-user.html https://github.com/facebookarchive/ie-toolbar/blob/master/Common/Install/msi/FBIE-MSI/scripts/msipostbuild.vbs

相關問題