Powershell 巧克力:制作一个安装脚本

Powershell 巧克力:制作一个安装脚本,powershell,installation,chocolatey,Powershell,Installation,Chocolatey,为了制作安装脚本并了解现有脚本,我想知道在典型的 choco install notepadplusplus 我发现: 装置 Chocolate使用Nuget.Core从源代码检索包 Choco确定它是自包含的还是具有自动化脚本-PowerShell脚本(*.ps1文件),并且很快将在0.9.10.x时间范围内对Scriptcs文件开放(我知道,对吧?!) Choco拍摄注册表快照,以便以后比较 如果有自动化脚本,choco将运行这些脚本。它们可以包含您需要执行的任何操作,如果它们是Powe

为了制作安装脚本并了解现有脚本,我想知道在典型的

choco install notepadplusplus 
我发现:

装置

  • Chocolate使用Nuget.Core从源代码检索包
  • Choco确定它是自包含的还是具有自动化脚本-PowerShell脚本(*.ps1文件),并且很快将在0.9.10.x时间范围内对Scriptcs文件开放(我知道,对吧?!)
  • Choco拍摄注册表快照,以便以后比较
  • 如果有自动化脚本,choco将运行这些脚本。它们可以包含您需要执行的任何操作,如果它们是PowerShell,则您拥有Posh(PowerShell)的全部功能,但您应该尝试确保它们与Posh v2+兼容
  • Choco比较快照并确定卸载程序信息,并将其保存到.registry文件中
  • Choco根据当前包目录中的所有文件对文件夹进行快照
  • Choco在package文件夹中查找可执行文件,并在$env:ChocolateyInstall\bin文件夹中生成垫片,以便这些项目在路径上可用。这些文件可能被嵌入到包中,或者从某处(互联网、ftp、文件文件夹共享等)下载并放置在那里
  • 鉴于

    • 如何获取
      .nupkg
      程序包URL?总的来说,似乎是这样的:

    • 哪个是
      .nupkg
      软件包下载目录

    • 默认情况下提取的
      .nupkg
      包的内容在哪里?这很重要,因为
      chocolayinstall.ps1
      有时使用
      splitpath-Parent$MyInvocation.MyCommand.Definition

  • “0.9.10.x时间范围内的脚本文件”相当神秘。你能提供一些参考资料吗

  • Posh v2+是Powershell的简称,还是一种特定的技术

  • $env:ChocolateyInstall\lib
    中有几个可执行文件,但在
    $env:ChocolateyInstall\bin
    中没有链接。例如,mpv播放器的
    mpv.exe
    未链接

  • 是的,那个下载URL看起来是正确的。下载目录始终位于Chocolate安装文件夹中,然后是
    lib\packageName
    ,这是将内容提取到的位置
  • 目前,安装脚本仅在PowerShell中编写。此注释指的是使用ScriptCS运行时在C#中编写安装脚本的能力。目前,这还不受支持
  • 是的,这只是指PowerShell的一个简短方式
  • 对于mpv包,您会注意到有一个
    mpv.exe.ignore
    文件。包中存在此文件会阻止创建垫片
  • 是的,那个下载URL看起来是正确的。下载目录始终位于Chocolate安装文件夹中,然后是
    lib\packageName
    ,这是将内容提取到的位置
  • 目前,安装脚本仅在PowerShell中编写。此注释指的是使用ScriptCS运行时在C#中编写安装脚本的能力。目前,这还不受支持
  • 是的,这只是指PowerShell的一个简短方式
  • 对于mpv包,您会注意到有一个
    mpv.exe.ignore
    文件。包中存在此文件会阻止创建垫片

  • 我已经更新了wiki,它很快就会更新该链接-请查看是否有更充分的答案回答您的问题。@ferventcoder:谢谢,我正在寻找的。小错误:“巧克力决定它是否独立”,缺少“是”。谢谢,在维基上修复。稍后将更新到站点。@ferventcoder:关于快照,快照所涉及的文件夹是什么。当前只有软件包目录(如上面的数字6所示)。我已经更新了wiki,它将很快更新该链接-请查看是否有更充分的答案。@ferventcoder:谢谢,我正在寻找的内容。小错误:“巧克力决定它是否独立”,缺少“是”。谢谢,在维基上修复。稍后将更新到站点。@ferventcoder:关于快照,哪些文件夹受快照的约束。当前只有包目录(如上面的数字6所示)。