WiX:如何注册Windows启动时启动的应用程序?

Rin*_*lin 26 .net windows-installer wix wix3

我正在探索使用WiX生成的MSI分发.NET桌面应用程序.

到目前为止它的效果很好.但我有几个问题,谷歌搜索无法帮助.

在Windows启动时(在WiX中)注册应用程序的建议方式是什么?

我可以使用什么WixUI以及如何使用?

笔记:

  • 该应用程序不是Windows服务,不应该这样注册.
  • 让用户在设置过程中禁用该选项会很不错.

提前致谢!

Sha*_*men 43

发现这是使用Google(通过注册表提供自动程序启动); 它还包括添加UI.不要忘记你还应该在设置之外提供一个选项来启用/禁用自动启动.

它的基本Wix是:

  <Property Id="ASSISTANCE_START_VIA_REGISTRY">1</Property>

  <!-- Auto-start via Registry -->
  <Component Id="MerliniAssistanceAutostart" Guid="Place-your-own-GUID-here">
    <RegistryValue Id="MerAs.rst" Root="HKMU" Action="write"
                   Key="Software\Microsoft\Windows\CurrentVersion\Run"
                   Name="Merlinia Assistance Client"
                   Value="[INSTALLDIR]Assistance.exe"
                   Type="string" />
    <Condition>ASSISTANCE_START_VIA_REGISTRY</Condition>
  </Component>

  <ComponentRef Id="MerliniaAssistanceAutostart" />
Run Code Online (Sandbox Code Playgroud)

  • 如果你给你的`<File />`一个Id,你可以把``#FileId``作为`Value`而不是`[INSTALLDIR] Assistance.exe`.这样,如果您更改exe文件的名称或其位置或其他内容,该字段将自动更新并保持同步. (15认同)
  • 我想 Root="HKMU" 应该是 Root="HKCU"... (2认同)

Dav*_*kle 12

看一下注册表HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.如果您希望每个用户启动它,那么请查看HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.如果您希望它在Windows启动时启动,而无需用户登录,那就是服务.