【问题标题】:Visual Studio setup project - running as system accountVisual Studio 安装项目 - 作为系统帐户运行
【发布时间】:2009-10-16 17:28:29
【问题描述】:

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

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

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

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

如何以当前登录用户的身份运行此进程?

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

【问题讨论】:

  • 我有点困惑。您创建 MSI 只是为了安装 SQL Express?那么为什么不使用 SQL Express 安装程序呢?还是 SQL Express 是您希望在应用程序之前安装的先决条件?
  • 我也安装了其他 exe,但在我的应用程序启动之前,我需要安装一个新的 MS SQL Express 实例。
  • 你是如何做到这一点的?典型的方法是为引导程序创建一个包描述并将其添加到 Properties -> Pre-requisites 到您的设置和部署项目中。
  • 顺便说一句,SQL Express 默认作为 SYSTEM 运行。所以我不认为这是你的问题。
  • 我从sql express网站下载了exe,然后使用命令行安装。您能否解释一下引导程序的过程,以便我可以安装 sql express 作为答案并接受它?

标签: c# windows-installer setup-project


【解决方案1】:

如果您想安装 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 来创建自己的单独引导程序包。

【讨论】:

  • 在这种情况下如何指定实例名称?在我通过 sql express 为您提供的命令行执行此操作之前。 /INSTANCENAME=MyInstance 我想部署一个新实例。
猜你喜欢
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多