所以我一直在尝试OneGet一段时间,并想创建软件包。我遇到的最大问题是OneGet似乎并未实际执行包中提供的卸载脚本。为什么Uninstall-Package无法启动Chocolatey卸载脚本?
这是.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>
chocolateyinstall.ps1:
Install-ChocolateyPackage 'notepadplusplus' 'exe' '/S' 'https://notepad-plus-plus.org/repository/6.x/6.8.5/npp.6.8.5.Installer.exe'
chocolateyuninstall.ps1:
Get-WmiObject -Class Win32_Product | Select-Object -Property Name > C:\foo.txt
我只使用卸载脚本来测试脚本是否运行,但不是。当我对安装脚本执行相同操作时,我可以清楚地看到它碰到脚本并实际创建文本文件。
所以我的问题是Windows 10中的oneget模块是否根本不使用脚本文件?由于执行卸载程序包似乎执行卸载文件,如果提供的名称是完全一样的在注册表中。例如,执行命令Uninstall-package notepad++
将卸载notepad ++,即使它的名称为notepadplusplus。
好的,谢谢!我现在继续使用choco并等待下一次更新。 – Tevemark
这似乎仍然是一个问题 - 对我来说基本上是不起作用的。 http://csi-windows.com/blog/all/74-powershell/463-getting-chocolatey-package-management-provider-working-on-windows-10描述了这些问题,但是它们是最新的, t似乎有帮助。在GitHub回购站上似乎也没有太多活动,所以我认为这个提供商已经死了? –
嗨,山姆 - 没有死,只是没有准备好,目前仍在优先。我将编辑我的答案,因为希望可用日期不再准确。 – ferventcoder