0

所以我一直在尝试 OneGet 并想创建包。我遇到的最大问题是 OneGet 似乎并没有实际执行包中提供的卸载脚本。

这是 .nuspec 文件和我一直在测试的脚本文件:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>notepadplusplus</id>
        <version>6.8.5</version>
        <title>Notepad++</title>
        <authors>Notepad ppl</authors>
        <owners>King Kong</owners>
        <projectUrl>https://notepad-plus-plus.org/</projectUrl>
        <iconUrl>http://i1-win.softpedia-static.com/screenshots/icon-60/Notepad-plus-plus.png</iconUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>Notepad++ is a free (as in "free speech" and also as in "free beer") source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License.</description>
        <summary>Notepad++</summary>
        <tags>notepad notepad++ texteditor text editor</tags>
    </metadata>
    <files>
        <file src="tools\chocolateyInstall.ps1" target="tools\chocolateyInstall.ps1" />
    <file src="tools\chocolateyUninstall.ps1" target="tools\chocolateyUninstall.ps1" />
    </files>
</package>

巧克力安装.ps1:

Install-ChocolateyPackage 'notepadplusplus' 'exe' '/S' 'https://notepad-plus-plus.org/repository/6.x/6.8.5/npp.6.8.5.Installer.exe'

巧克力云安装.ps1:

Get-WmiObject -Class Win32_Product | Select-Object -Property Name > C:\foo.txt

我使用卸载脚本只是为了测试脚本是否运行,但事实并非如此。当我对安装脚本执行相同操作时,我可以清楚地看到它命中了脚本并实际创建了文本文件。

所以我的问题是 Windows 10 中的 oneget 模块根本不使用脚本文件吗?如果提供的名称与注册表中的名称完全相同,则执行卸载包似乎会执行卸载文件。例如,执行该命令Uninstall-package notepad++将卸载 notepad++,即使它是使用名称 notepadplusplus 安装的。

4

1 回答 1

0

当前的 OneGet Chocolatey 提供程序是 2014 年 3 月(是的,2014 年)的非全功能原型,由 Microsoft 编写。官方提供者未完成。期待在 2017 年的某个时间完成。Chocolatey 团队使用优先级计划,允许在需求发生变化时快速重新确定优先级,因此很难提供更好的估计日期。如果有人有兴趣完成这个,请在​​下面发表评论。

准备好后,我们将在邮件列表和时事通讯中发布正式公告。

在宣布之前,我希望它是一个早期预览版,并且几乎认为它的所有内容都已损坏(包括自 2014 年以来添加的安全修复程序)。它目前基于近两年前的 Chocolatey,甚至还没有完全具备当时可用的功能。

HTH

于 2015-10-24T17:30:59.643 回答