Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以从aspnet核心web应用程序生成.msi捆绑包?_C#_Wix - Fatal编程技术网

C# 是否可以从aspnet核心web应用程序生成.msi捆绑包?

C# 是否可以从aspnet核心web应用程序生成.msi捆绑包?,c#,wix,C#,Wix,因此,目前的情况是,客户端将下载从wix生成的.msi包,执行安装,然后将一些特定的配置详细信息输入应用程序(windows服务/控制台) 我希望简化这个过程,这样客户端所要做的就是运行安装程序(无需配置),所以我想知道是否有人有过类似情况的经验 这就是我想象的工作流将如何运行 用户登录到多租户web应用程序=>用户单击下载按钮=>web服务器收集租户信息=>web服务器将配置传递到wix(作为构建参数?)=>msi随嵌入的配置生成=>用户下载生成的.msi,世界继续旋转 现在有几件事我不确定,

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

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

这就是我想象的工作流将如何运行

用户登录到多租户web应用程序=>用户单击下载按钮=>web服务器收集租户信息=>web服务器将配置传递到wix(作为构建参数?)=>msi随嵌入的配置生成=>用户下载生成的.msi,世界继续旋转

现在有几件事我不确定,下面是我的问题

  • 您将如何从web应用程序运行wix安装程序?它是用C#编写的,所以它会启动cmd窗口并运行msbuild吗
  • 如果1。如果可能,它在VisualStudio中的外观/功能如何。我假设安装程序项目/安装程序资产项目都需要在web应用程序的构建输出中,是否可以将原始文件复制到输出中 当然,你可以从C#开始。以CakeBuild的Wix扩展为例:

    至于将“内容”文件打包到您的web应用程序中,您也可以这样做,就网站而言,wix项目文件与任何其他资产没有什么不同

    另外,要从一个dot-net应用程序运行进程,在重定向和记录输出方面需要做大量的工作,您可能希望查看Nuget上的一些进程处理包,这些包可以为您做到这一点


    性能可能是您的一个问题,另外,如果您只想让一个用户获得可下载的MSI,还需要一些方法来保护它。如果还没有,您可能还需要研究代码签名。除此之外,它应该相当简单。

    谢谢Ian,我在构建脚本中使用了CakeBuild,所以这非常有意义。至于实际部署,我认为作为构建过程的一部分,Windows服务工件(.exe、.dll等)将被复制到Web项目输出,准备由wix项目文件使用,这对吗?或者会有其他方法来实现这一点吗?@tjackadams我认为你不需要将它们复制到那里,一个MSI可以处理多个功能定义和/或目录定义,将东西安装到不同的地方,你可以从任何地方提取文件。