是否可以从aspnet核心Web应用程序生成.msi包?

时间:2018-06-01 06:46:23

标签: c# wix

所以目前的情况是,客户端将下载从wix生成的.msi包,执行安装并在之后输入一些特定的配置详细信息到应用程序(Windows服务/控制台)。

我希望简化这个过程,所以客户端必须做的就是运行安装程序(不需要配置),所以我想知道是否有人有过类似情况的经验。

这就是我对工作流程运行的方式。

用户登录多租户网络应用程序=>用户点击下载按钮=> Web服务器收集租户信息=> Web服务器将配置传递给wix(作为构建参数?)=>使用配置embeded =>生成msi用户下载生成的.msi,世界不断旋转。

现在有一些我不确定的事情,所以这是我的问题。

  1. 您如何从Web应用程序运行wix安装程序?它是用C#编写的,所以它只是启动一个cmd窗口并运行msbuild吗?
  2. 如果可能,那么它在Visual Studio中的外观/功能如何?我假设安装程序项目/安装程序资产项目都需要在Web应用程序的构建输出中,是否可以将原始文件复制到输出中? < =这是一个好习惯吗?
  3. 这对我来说似乎并不合适,所以如果有人对如何实现这一点有任何建议,无论我如何描述或任何其他方法,那么我愿意接受这些想法!

    为了澄清,主要目标是在运行时生成一个Windows安装程序,并嵌入租户配置"

1 个答案:

答案 0 :(得分:0)

你可以从C#中做到这一点。例如,查看CakeBuild的Wix扩展:https://github.com/cake-build/cake/tree/33b83fdbc24a7d3d1bafc4cd7c7df0a204162e3b/src/Cake.Common/Tools/WiX

关于包装内容'您可以使用您的Web应用程序编写文件,就网站而言,wix项目文件与任何其他资产没有区别。

此外,要从点网应用程序运行进程,需要做一些关于重定向和记录输出的工作,您可能希望查看Nuget上的一些可以为您执行此操作的进程处理包

性能可能是一个问题,以及保护可下载MSI的方法,以防您只希望一个用户获取它。如果您尚未进行代码签名,则可能还需要查看代码签名。除此之外,它应该相当简单。