.net - 什么是适当的方式/如何在 Visual Studio 2017/2019 中打包 Visual Basic Windows 服务项目?
问题描述
什么是适当的方式/如何打包 Visual Basic Windows 服务项目?
我有一个 Visual Basic Windows 服务 (.Net Framework) 项目。Jenkins 使用 msbuild 构建项目。我需要将编译好的代码(.dlls、.exe 等)打包后推送到我们的部署工具中。
Visual Studio 2017/2019 中的Windows 服务项目是否有打包选项?类似于ASP.Net Web 应用程序项目,可以使用创建Web 部署包的Publish进行打包?安装项目不是一个选项,因为我只在构建服务器中使用 BuildTools,而 .vdproj 无法使用 msbuild 构建。
解决方案
据我所知,打包 .NET Framework Windows 服务项目代码库的最佳方式是使用 MSI(安装程序),因为它根本不是任何 Web 部署的一部分。此外,.NET Framework Windows 服务项目模板与语言无关,只要它使用 .NET Framework,这意味着不仅支持 VB.NET 和 C#,因此它不与 VB/C# 耦合,您还可以使用托管创建 Windows 服务C++。
要创建 Windows 服务项目的 MSI 部署,您可以使用扩展。
在 Visual Studio 2017 上,您可以使用扩展,即 Visual Studio 2017 安装程序项目: https ://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects
或者您可以为 VS 2017 使用开源 WiX 安装程序扩展(也基于 MSI): https ://marketplace.visualstudio.com/items?itemName=RobMensching.WixToolsetVisualStudio2017Extension
如果您使用的是 .NET Core 3.0,则可以使用 ASP.NET Core 模板在 ASP.NET Core 3.0 框架之上创建工作进程,并部署为 Windows 服务。不幸的是,发布 Web UX 和 UI 尚不可用,此模板仅支持 C#。
推荐阅读
- javascript - 向 Nuxt 添加外部脚本
- delphi - 有没有办法在 TIdHTTPServer.OnCommandGet 事件中立即发送我的响应?
- python - 有没有一种特殊的方法来抓取动态网站?
- git - 将 Mercurial 存储库转换为 Git。大 .git 文件夹,但没有代码文件
- azure - 如何在部署时将 test.salesforce.com 作为 api 连接逻辑应用程序的 salesforce 登录 url?
- bash - 如何将线转换为驼峰式?
- python-2.7 - 使用 Python 提取 .cpgz 文件
- c# - 为什么 transform.eulerAngles 不旋转我的播放器?
- javascript - jQuery 中未定义的 JSON 值
- java - 仅关闭 ScheduledExecutorService 中的一项任务