Visual Studio安装项目:将CustomActions / process作为当前用户而不是系统帐户运行
我在visual studio 2010中使用了一个安装项目,用于ac#outlook插件(Office 2010/2013)和另一个独立工具。 在安装过程中,我终止了所有outlook实例,之后我想重新启动一个outlook实例。
在我的addin项目中,我添加了一个installerclass并添加了一个InstallEventHandler(AfterInstallEventHandler),我在其中执行
Process.Start("Outlook");
虽然相同的命令只是在其他已编译的类中打开Outlook,但在安装程序Outlook的上下文中将在概要文件创建助手中打开。
我还尝试在提交后将所述工作编译的exe作为用户定义的操作运行,但同样的问题发生。
任何解决方案或解释将不胜感激。
解:
安装在SYSTEM帐户中运行。 因此,创建的进程也在所述帐户中运行,而不是当前登录的用户。
我创建了一个额外的项目(InstallHelper),其中包括
Process.Start("Outlook");
我在我的安装项目中在Commit上添加了InstallHelper作为CustomAction,并在CustomAction的属性中将InstallerClass更改为False。 然后我将WiRunSql.vbs复制到项目文件夹,并将一个PostBuildEvent添加到安装项目:
@echo off cscript //nologo "$(ProjectDir)WiRunSql.vbs" "$(BuiltOutputPath)" "UPDATE CustomAction SET Type=1554 WHERE Type=3602"
3602:
1554:
请参阅: msdn:自定义操作脚本执行选项
Type-change删除了msidbCustomActionTypeNoImpersonate(0x00000800)的位,因此InstallHelper和创建的进程作为登录用户运行,而不是作为SYSTEM运行。
或者,可以通过在orca中打开msi来实现这些更改(必须在每次构建后重复,因此我更喜欢脚本化更改)。
除了之前的回答(我花了很多时间来理解这一点):
我的文本为WiRunSql.vbs :(对你而言,它还包含argument2-update脚本参数)
(对我来说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:ProjectsYourProjectWiRunSql.vbs" "C:ProjectsYourProjectDebugSetup.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
上述就是C#学习教程:Visual Studio安装项目:将CustomActions / process作为当前用户而不是系统帐户运行分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。
如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1013052.html