【问题标题】:How to make a windows 10 install file如何制作windows 10安装文件
【发布时间】:2021-09-07 01:23:40
【问题描述】:

我想知道 Windows 是否提供安装脚本或工具来安装节点运行时和我的节点 js 代码。

这就是我想要的:

  • 安装节点
  • 下载编译好的node app
  • 使用pm2 运行类似node app.js 的代码
  • 将此作为窗口服务并在启动时启动

可以下载这个安装文件。单击它一次,这一切都会运行。类似于 bat 文件或 power shell 脚本。

【问题讨论】:

  • 这看起来像是安装程序的任务。试试,比如说Wix

标签: node.js .net windows powershell msbuild


【解决方案1】:

我没有对此进行广泛的测试,但它至少应该为您提供一些入门的想法。

  • 使用Invoke-WebRequest 下载 Node.js Windows 安装程序
  • 使用Start-Processmsiexec.exe进行安装
  • 安装了 Node.js,你应该可以使用npm 来安装 最新版本的 PM2
  • 再次使用Invoke-WebRequest 下载Node 应用文件
  • 考虑创建一个计划的而不是自定义 Windows 服务 使用New-JobTriggerRegister-ScheduledJob 登录时运行的任务
Invoke-WebRequest -Uri "https://nodejs.org/dist/v14.17.1/node-v14.17.1-x64.msi" -OutFile ".\node-v14.17.1-x64.msi"
Start-Process msiexec.exe -Wait -ArgumentList "/i node-v14.17.1-x64.msi /quiet"

npm install pm2@latest -g

Invoke-WebRequest -Uri "node-app-url" -OutFile ".\app.js"

$trigger = New-JobTrigger -AtLogOn -RandomDelay "00:00:30"
Register-ScheduledJob -Trigger $trigger -ScriptBlock { pm2 start app.js } -Name "RunNodeAppAtLogon"

【讨论】:

  • 这将是一个强大的 shell 脚本?是否可以将此脚本转换或构建为可执行文件? exe 或一些带有进度条的安装文件?我想让这个看起来不错。另外,您为什么推荐计划任务而不是 Windows 服务?
  • Start-Process msiexec.exe -Wait -ArgumentList "/i node-v14.17.1-x64.msi /quiet" 不起作用。我没有收到任何安装错误。但是节点没有安装。
  • 在没有/quiet 开关的情况下尝试一下,看看您是否收到有关正在发生的事情的任何反馈。您也可以在末尾添加/L*V <path-to-log>,将安装输出写入日志文件。
  • 查看以下链接指南,了解有关将 PS1 转换为 EXE (LINK) 的信息。对于进度条,Write-Progress cmdlet 应该可以使用(LINK)。最后,我推荐一个 Scheduled Task 而不是 Service 因为它应该更容易创建和实现,并且由于它的执行频率应该很低,所以没有将内存绑定在 Service 中的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 2017-02-02
  • 1970-01-01
  • 2019-07-12
  • 2019-12-06
相关资源
最近更新 更多