1

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

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

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

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

我该怎么做才能以当前登录的用户身份运行此过程?

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

4

1 回答 1

4

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

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

请注意,为了使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 来创建自己的单独引导程序包。

于 2009-10-16T17:43:18.627 回答