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



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

应用程序本身对所有数据和日志记录使用 ProgramDataMyCompanyMyApp。我也应该把二进制文件放在那里吗?还是Program Files更合适?如果这些位置之一是正确的,那么 chocolateyinstall.ps1 是否是放置代码以复制二进制文件的逻辑位置?或者(我希望你说不(这甚至不是巧克力的有效用途吗?意思是,我应该吸吮它并为巧克力创建一个微星来手术吗?

谢谢

目前,.nuspec将.exe和所有.dll放入tools文件夹中,这意味着它们最终会安装到ProgramDatachocolateylibour-servicetools。这似乎不对。实际上,在我注意到卸载记录各种错误之前,这不是问题。这些都与 Chocolatey 尝试备份文件有关,但不能备份,因为它们正在使用中,因为服务正在运行。chocolateyuninstall.ps1 停止该服务,但它直到备份尝试后才会运行。

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

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

另一件需要考虑的事情是 Chocolatey 利用了 XDT(XML 文档转换(,这意味着如果您为 xml 配置包含一个*.install.xdt文件,choco 不会简单地覆盖现有文件。这允许您在包文件夹中升级,而不会覆盖任何用户配置。但是,如果您要将文件复制到其他地方,则需要自己弄清楚这方面。

应用程序本身对所有数据和日志记录使用 ProgramDataMyCompanyMyApp。我也应该把二进制文件放在那里吗?还是Program Files更合适?

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

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

如果这些位置之一是正确的,那么 chocolateyinstall.ps1 是否是放置代码以复制二进制文件的逻辑位置?

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

或者(我希望你说不(这甚至不是巧克力的有效用途吗?意思是,我应该吸吮它并为巧克力创建一个微星来手术吗?

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

相关内容

  • 没有找到相关文章

最新更新