【问题标题】:MVC core MSI builder, how to create installer?MVC core MSI builder,如何创建安装程序?
【发布时间】:2017-02-12 20:07:12
【问题描述】:

我编写了一个 MVC 核心应用程序。下一步是将其包装在 MSI 中并将其分发给客户端。问题是这样的:我似乎找不到任何内置方式自动捕获所有内容文件和 dll 并将它们包装在 MSI 中。到目前为止,我已经尝试过 windows 安装程序和 wix(准确地说是热),但它们似乎都没有内置的方式来使用 .net 核心。微软只是认为它不够重要还是我错过了一些重要的东西?我可以尝试逐个文件地放置所有输出和所有依赖项,但这将很难维护,使用新的 Nuget 方法,一个项目需要许多 dll,连同所有内容,它变得巨大。任何帮助将不胜感激

【问题讨论】:

  • 一个非常有趣的问题。

标签: c# deployment wix windows-installer asp.net-core-mvc


【解决方案1】:

我仍在适应这个“现代”世界,我的一部分人想知道您为什么要将 .NET 核心应用程序打包为 MSI。我认为您会在“云”中的 docker 容器或 Windows 服务器应用程序 (appx) 或甚至不支持 MSI 的 nano 服务器上运行它。对于实际的 Windows 服务器,我假设是常规的旧 .NET。 (我仍然深爱着。)

也就是说,我有一个名为 IsWiX (CodePlex) 的开源程序,并且有一个非常简单的模式来创建 ASP.NET 网站安装程序(请参阅视频:https://www.youtube.com/watch?v=pgDf1kv8a-4),我愿意与您合作为 asp.net-core mvc 应用想出一个类似的故事。

根据我的阅读,.net 核心应用程序也支持 msbuild 发布配置文件。这就是我用来创建我的安装程序的模型。从那里我只需将文件拖放到 IsWiX 中,让它为我编写所有 XML。

FWIW 网站安装程序总是有很多文件。甚至在 nuget 和 npm 之前,网站开发人员可能仅通过添加说 Infragistics 就可以将几千个文件添加到他们的项目中。我曾经做过一个拥有超过 300,000 个文件的安装程序。哎呀!我一直希望我们有一种方法可以为这些东西创建一个未压缩的存档,并且 IIS 可以将其视为一个目录,但据我所知,这从未发生过。

MSI 世界是一个声明性世界,我们需要明确列出每个文件。 Web 开发人员生活在一个他们只说“发布”而不关心这些细节的世界中。这就是我试图用 IsWiX 弥补的差距。

【讨论】:

  • 哇,如果几天前才知道您的工具...我最终做了几乎类似的事情,我使用 msbuild 发布配置文件发布了我的项目并创建了一个简单的 winform 应用程序来解析我的目标文件夹并为wix构建xml。非常感谢您的回复和项目。关于您的第一段,我知道现代方法是针对“云”解决方案,但有时组织并不总是允许互联网访问,只需要在一个服务器上安装一个简单的 Web 服务,并且需要以熟悉的方式发送.现代时尚。
  • 是的,“现代”人群只能以新的方式看待它。我仍在尝试将一些旧学校融入新学校的不同方法。如果有一个常见的故事,我想使用一个 asp.net 核心应用程序并使用 MSI 部署它并将 IIS 配置为反向代理,那么我很想了解它并为它创建一个模板。你可以帮我理解我还不理解的部分。
  • @ChristopherPainter, docs.microsoft.com/en-us/aspnet/core/publishing/iis 解释了如何将 ASP.Net Core 应用程序发布到 IIS。它所需要的只是 .Net Core Windows Server Hosting 和 VC++ 2015 可再发行组件。我可以帮你制作模板。
  • @user2033402 你提到 - “我已经使用 msbuild 发布配置文件发布了我的项目,并创建了一个简单的 winform 应用程序来为我解析目标文件夹并为 wix 构建 xml ”。 你能分享你的步骤吗?
  • 最近有人在 wix-users 列表上询问了这个问题。我仍然想和某人一起工作。稍后我将创建一个 github 存储库并开始构建它。
猜你喜欢
  • 2016-07-23
  • 2012-05-22
  • 2019-07-26
  • 2015-06-27
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多