Visual Studio安装项目 - 作为系统帐户运行

时间:2009-10-16 17:28:30

标签: c# windows-installer setup-project

我使用VS 2008创建了一个新的Visual Studio安装项目。

我用它来安装SQLExpress。 当我在安装程序外手动执行时,SQLExpress的installatino工作正常。

但是当我安装时,我在SQL Express中遇到了一个带有权限的错误。 我发现这是因为当我从我的安装项目运行时,SQLExpress进程作为系统帐户运行。

我尝试通过自定义操作和通过Process.Start安装模块后运行的C#代码启动该过程。 但是它们都以SQLExpress进程作为系统帐户运行。

如果以当前登录的用户身份运行此流程,我该怎么办?

注意:我也尝试启动calc.exe,它也作为系统进程运行。为什么它不会在我的安装程序运行的同一用户的上下文中运行?

1 个答案:

答案 0 :(得分:4)

如果要将SQL Server Express作为应用程序的先决条件安装,则应将其作为安装和部署项目的先决条件添加。

这可以通过右键单击您的安装项目,然后选择属性 - >来完成。先决条件,然后检查 SQL Server Express 2008

请注意,为了在先决条件列表中提供 SQL Server Express ,必须在开发计算机上安装 SQL Server Express

更新:

如果要指定实例名称,则无法手动编辑引导程序包定义。

对于Visual Studio 2008,默认情况下,引导程序包将放置在以下位置:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

在那里,您还可以找到文件夹名称​​ SqlExpress 。在该文件夹中,打开文件en \ package.xml并修改安装程序的命令行参数。根据目标操作系统有三个部分(Win 2000,XP和2003 +):

<Command PackageFile="sqlexpr32.exe" 
         Arguments="-q /norebootchk /qn reboot=ReallySuppress addlocal=all 
                    instancename=SQLEXPRESS SQLAUTOSTART=1 ADDUSERASADMIN=1" 
                    EstimatedInstalledBytes="225000000" 
                    EstimatedTempBytes="225000000" 
                    EstimatedInstallSeconds="420">

   ...

</Command>

此更改将影响所有安装程序,并将此程序包作为构建在系统上的先决条件。如果您不希望这样,则必须通过复制SqlExpress文件夹并更新SqlExpress \ package.xml中的ProductCode来创建自己的独立引导程序包。