长话短说,我的雇主之一的客户有一个依赖于ClickOnce应用软件的aaS平台。此特定应用程序由第三方软件开发人员开发,并授权给我的雇主的客户公司。它也恰好需要安装大量必备/依赖应用程序才能使其正常运行,但不会作为ClickOnce安装的一部分进行部署。重要的是,由于它是由第三方开发并获得许可的,因此无法对应用程序本身进行任何更改。
到目前为止,实际上在端点上安装应用程序已经由客户公司通过提供预先映像的计算机来处理,或者当他们的客户希望使用他们自己的硬件时,为他们的客户服务代表提供包含一堆的大型zip文件.bat脚本必须在任何要用作其服务端点的计算机上手动运行。批处理脚本基本上完成引导程序的工作并安装先决条件,进行必要的系统配置更改和检查,然后调用ClickOnce应用程序安装程序。
正如预期的那样,他们不喜欢这个解决方案,并且想要一个真正的安装程序,所以我已经着手创建一个带有WiX / Burn的引导程序,但我现在仍然坚持如何在我的bootstrapper项目中包含ClickOnce应用程序。我似乎无法在网上查找相关文档,提示问题:
我可以将ClickOnce应用程序捆绑到WiX引导程序中吗?怎么样?
如果它有所不同,ClickOnce应用程序将从客户公司的某个服务器发布,因此我可以完全访问ClickOnce清单和所有.deploy文件。
答案 0 :(得分:1)
你不能制作母猪耳朵的丝绸钱包。我认为您可以做的最好的事情是为特定版本的ClickOnce安装程序创建依赖安装程序。没有人会期望应用程序的未来版本具有相同的依赖关系。
(到那时,也许他们可能会通过包含依赖项来修复他们的ClickOnce安装程序。或者,放弃他们在ClickOnce中遇到问题的依赖关系,比如过时版本的Windows所需的依赖关系。)
安装依赖项后,您可以让引导程序启动应用程序,该应用程序将安装或更新它。 (从逻辑上讲,这遵循链。)
<Variable Name="LaunchTarget" Value="http://example.com/path/product.application"/>
备份一下,你可以创建一个包含所有ClickOnce文件的MsiPackage,并为LaunchTarget使用“file://”URI。这将要求您重建和重新部署每个新版本(击败ClickOnce的性质),但会使您与未经测试的应用程序更新隔离。