是否可以从 aspnet 核心 Web 应用程序生成 .msi 包?
Is it possible to generate an .msi bundle from an aspnet core web application?
因此目前的情况是,客户端将下载从 wix 生成的 .msi 包,执行安装,然后在应用程序中输入一些特定的配置详细信息 (a windows service/console)。
我一直在寻求简化此过程,因此客户端所要做的就是 运行 安装程序(无需配置),所以我想知道是否有人遇到过类似情况。
这就是我想象的工作流程 运行。
用户登录到多租户 Web 应用程序 => 用户单击下载按钮 => Web 服务器收集租户信息 => Web 服务器将配置传递给 wix(作为构建参数?)=> msi 随配置一起生成嵌入 => 用户下载生成的 .msi,世界一直在旋转。
现在有些事情我不确定,所以这是我的问题。
- 您如何从 Web 应用程序 运行 安装 Wix 安装程序?它是用 C# 编写的,所以它会启动一个 cmd window 和 运行 msbuild 吗?
- 如果 1. 是可能的,它会如何 look/function 在 Visual Studio 中。我假设安装程序 project/installer 资产项目都需要在 Web 应用程序的构建输出中,是否可以将原始文件复制到输出中? <= 这是一个好习惯吗?
这对我来说似乎不切实际,所以如果有人对如何实现这一点有任何建议,无论是我上面描述的方法还是任何其他方法,那么我愿意接受想法!
澄清一下,主要目标是 "generate a windows installer at runtime with a tenant configuration embedded"
您肯定可以从 C# 中完成。例如,看一下 CakeBuild 的 Wix 扩展:https://github.com/cake-build/cake/tree/33b83fdbc24a7d3d1bafc4cd7c7df0a204162e3b/src/Cake.Common/Tools/WiX
关于将 'content' 文件与您的 Web 应用程序打包在一起,您也可以这样做,就网站而言,wix 项目文件与任何其他资产没有什么不同。
此外,对于来自 dot net 应用程序的 运行 进程,围绕重定向和记录输出还有很多工作要做,您可能希望查看 Nuget 上的一些进程处理包,它们可以做到这个给你。
性能对您来说可能是个问题,另外还有保护可下载 MSI 的方法,以防您只希望一个用户获得它。如果您还没有,您可能还需要研究代码签名。除此之外,它应该相当简单。
因此目前的情况是,客户端将下载从 wix 生成的 .msi 包,执行安装,然后在应用程序中输入一些特定的配置详细信息 (a windows service/console)。
我一直在寻求简化此过程,因此客户端所要做的就是 运行 安装程序(无需配置),所以我想知道是否有人遇到过类似情况。
这就是我想象的工作流程 运行。
用户登录到多租户 Web 应用程序 => 用户单击下载按钮 => Web 服务器收集租户信息 => Web 服务器将配置传递给 wix(作为构建参数?)=> msi 随配置一起生成嵌入 => 用户下载生成的 .msi,世界一直在旋转。
现在有些事情我不确定,所以这是我的问题。
- 您如何从 Web 应用程序 运行 安装 Wix 安装程序?它是用 C# 编写的,所以它会启动一个 cmd window 和 运行 msbuild 吗?
- 如果 1. 是可能的,它会如何 look/function 在 Visual Studio 中。我假设安装程序 project/installer 资产项目都需要在 Web 应用程序的构建输出中,是否可以将原始文件复制到输出中? <= 这是一个好习惯吗?
这对我来说似乎不切实际,所以如果有人对如何实现这一点有任何建议,无论是我上面描述的方法还是任何其他方法,那么我愿意接受想法!
澄清一下,主要目标是 "generate a windows installer at runtime with a tenant configuration embedded"
您肯定可以从 C# 中完成。例如,看一下 CakeBuild 的 Wix 扩展:https://github.com/cake-build/cake/tree/33b83fdbc24a7d3d1bafc4cd7c7df0a204162e3b/src/Cake.Common/Tools/WiX
关于将 'content' 文件与您的 Web 应用程序打包在一起,您也可以这样做,就网站而言,wix 项目文件与任何其他资产没有什么不同。
此外,对于来自 dot net 应用程序的 运行 进程,围绕重定向和记录输出还有很多工作要做,您可能希望查看 Nuget 上的一些进程处理包,它们可以做到这个给你。
性能对您来说可能是个问题,另外还有保护可下载 MSI 的方法,以防您只希望一个用户获得它。如果您还没有,您可能还需要研究代码签名。除此之外,它应该相当简单。