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

C# Visual Studio安装项目-作为系统帐户运行,c#,windows-installer,setup-project,C#,Windows Installer,Setup Project,我用VS2008创建了一个新的VisualStudio安装项目 我使用它来安装SQLExpress。 当我在安装程序外部手动安装SQLExpress时,它可以正常工作 但是,当我安装时,我在SQL Express中得到了一个具有权限的错误。 我发现这是因为当我从安装项目运行SQLExpress进程时,它是以系统帐户的形式运行的 我尝试通过自定义操作和通过process.Start安装模块后运行的C#代码启动流程。 但它们都以系统帐户的形式运行SQLExpress进程 我可以做些什么以当前登录的用

我用VS2008创建了一个新的VisualStudio安装项目

我使用它来安装SQLExpress。 当我在安装程序外部手动安装SQLExpress时,它可以正常工作

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

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

我可以做些什么以当前登录的用户身份运行此进程


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

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

这可以通过右键单击安装项目,然后选择属性->先决条件,然后检查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+),有三个部分:


...

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

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

这可以通过右键单击安装项目,然后选择属性->先决条件,然后检查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+),有三个部分:


...

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

我有点困惑。您创建MSI只是为了安装SQL Express?那么为什么不使用SQLExpress安装程序呢?或者SQL Express是您希望在应用程序之前安装的先决条件吗?我也安装了其他EXE,但在我的应用程序启动之前,我需要安装一个新的MS SQL Express实例。您如何做到这一点?典型的方法是为引导程序创建一个包描述,并将其添加到设置和部署项目的属性->先决条件下。顺便说一句,SQL Express默认作为系统运行。所以我不认为这是你的问题。我从sql express网站下载了exe,并使用命令行安装它。你能解释一下引导程序的过程吗?这样我就可以安装sql express作为答案,我会接受的。我有点困惑。您创建MSI只是为了安装SQL Express?那么为什么不使用SQLExpress安装程序呢?或者SQL Express是您希望在应用程序之前安装的先决条件吗?我也安装了其他EXE,但在我的应用程序启动之前,我需要安装一个新的MS SQL Express实例。您如何做到这一点?典型的方法是为引导程序创建一个包描述,并将其添加到设置和部署项目的属性->先决条件下。顺便说一句,SQL Express默认作为系统运行。所以我不认为这是你的问题。我从sql express网站下载了exe,并使用命令行安装它。请您解释一下bootstrapper的过程,这样我就可以安装sql express作为答案,我会接受它。在这种情况下,如何指定实例名称?在此之前,我通过SQLExpress提供的命令行执行此操作/INSTANCENAME=MyInstance我想部署一个新实例。在这种情况下,如何指定实例名称?在此之前,我通过SQLExpress提供的命令行执行此操作/INSTANCENAME=MyInstance我想部署一个新实例。