我使用VS 2008创建了一个新的Visual Studio安装项目。
我用它来安装SQLExpress。 当我在安装程序外手动执行时,SQLExpress的installatino工作正常。
但是当我安装时,我在SQL Express中遇到了一个带有权限的错误。 我发现这是因为当我从我的安装项目运行时,SQLExpress进程作为系统帐户运行。
我尝试通过自定义操作和通过Process.Start安装模块后运行的C#代码启动该过程。 但是它们都以SQLExpress进程作为系统帐户运行。
如果以当前登录的用户身份运行此流程,我该怎么办?
注意:我也尝试启动calc.exe,它也作为系统进程运行。为什么它不会在我的安装程序运行的同一用户的上下文中运行?
答案 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来创建自己的独立引导程序包。