gpt4 book ai didi

topshelf - 使用 Chocolatey 安装 Windows 服务的 "correct"方式是什么?

转载 作者:行者123 更新时间:2023-12-04 21:10:46 25 4
gpt4 key购买 nike

我正在寻找有关如何打包 TopShelf 托管的 Windows 服务以通过 Chocolatey 分发的指导。当前 .nuspec 将 .exe 和所有 .dll 放入 \tools文件夹,这意味着它们最终安装到 ProgramData\chocolatey\lib\our-service\tools .那似乎不太对。事实上,这不是问题,直到我注意到卸载记录了各种错误。这都与 Chocolatey 尝试备份文件有关,但不能,因为服务正在运行,它们正在使用中。 Chocolateyuninstall.ps1 会停止该服务,但直到尝试备份后它才会运行。

应用程序本身使用 ProgramData\MyCompany\MyApp用于所有数据和日志记录。我应该把二进制文件也放在那里吗?或者是 Program Files更合适?如果这些位置之一是正确的,那么chocolateyinstall.ps1 是将代码复制到二进制文件的逻辑位置吗?或者(我希望你说不)这甚至不是巧克力的有效用法吗?意思是,我应该把它搞定并为 Chocolatey 创建一个 MSI 来操作吗?

谢谢

最佳答案

Currently the .nuspec puts the .exe and all .dlls into the \tools folder, which means they end up installed to ProgramData\chocolatey\lib\our-service\tools. That just doesn't seem right. In fact it was not a problem until I noticed that the uninstall logs all sorts of errors. Which are all related to Chocolatey trying to back up the files but can't because they are in use because the service is running. The chocolateyuninstall.ps1 stops the service but it doesn't run till after the backup attempt.



我们正在添加一个将在升级/卸载之前运行的 ChocolateyBeforeModify.ps1 脚本 - https://github.com/chocolatey/choco/issues/268 .这应该在 0.9.10 中,这将有助于使工作流程更顺畅。

目前,您必须在尝试升级或卸载之前停止 Chocolatey 之外的服务。

另一件要考虑的事情是 Chocolatey 利用了 XDT (Xml Document Transformations) ,这意味着如果您包含 *.install.xdt对于 xml 配置文件,choco 不会简单地覆盖现有文件。这允许您在不覆盖任何用户配置的情况下升级包文件夹。但是,如果您要将文件复制到其他地方,则需要自己解决这方面的问题。

The application itself uses ProgramData\MyCompany\MyApp for all data and logging. Should I be putting the binaries there as well? Or is Program Files more appropriate?



我们还没有推荐的安装服务或设置网站/网络应用程序的方法。我们将在 future 为这两件事创建助手,届时我们将推荐这些途径,并就事情的发展方向提出更好的建议。

更新 20170324 : 我们现在有 Install-ChocolateyWindowsService以及Chocolatey商业版中的其他服务相关功能。

If one of these locations is correct, is chocolateyinstall.ps1 the logical place to put the code to xcopy the binaries?



自动化脚本是执行添加包位后需要执行的任何操作的逻辑位置。

Or (and i hope you say no) is this not even a valid use of Chocolatey? Meaning like, should I suck it up and create an MSI for Chocolatey to operate on?



创建服务和网站绝对是 Chocolatey 的有效用途。除非需要,否则我建议不要创建 MSI。这是一个相当复杂的过程,在大多数情况下(例如对于内部应用程序),感觉有点矫枉过正。

关于topshelf - 使用 Chocolatey 安装 Windows 服务的 "correct"方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35095944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com