NZJ*_*mes 2 c# clickonce publishing manifest
我有一个要通过ClickOnce构建和部署的应用程序。但是我们希望这是一个可以在VS之外通过脚本运行的过程,用于测试,业务UAT或生产环境。
每个单独的环境都需要使用不同的.config文件,并在其上以及更新位置上部署不同的Web服务器。
该应用程序还具有.NET运行时3.5和Crystal报表的先决条件。
我已经研究过使用MAGE创建应用程序和部署清单,如果我执行代码构建,然后在每种环境下使用MAGE,以及在正确的.config文件上复制脚本,这将创建我认为的运行脚本时针对每个环境的正确清单。
但是我正在努力做的是包括先决条件。如果通过VS完成,则可以指定setup.exe程序包,该程序包将随pre-reqs一起构建并与应用程序一起部署,当您单击下载链接时,它将先从setup.exe安装该pre-reqs,然后再安装该应用程序。
但是,如何在VS之外手动执行此操作?我可以通过VS在正确的URl位置上构建setup.exe,但是随后如何使用MAGE生成清单作为先决条件将setup.exe链接到应用程序?
我们遇到的问题是:1)用户没有下载和安装软件包的管理员权限,只能通过clickonce进行安装,因此必须在“单击一次”安全性保护下安装先决条件。
谢谢
ClickOnce和先决条件引起很多混乱。Visual Studio生成的setup.exe与ClickOnce无关。两者之间唯一的次要链接是setup.exe完成后将启动ClickOnce应用程序。而已。因此认为用户可以在“ clickonce安全性保护伞下”安装您的前提条件是一个错误。如果他们不是管理员,并且prereq安装需要管理员权限,则他们将无法安装它。
我的建议是一次生成您的setup.exe。除非先决条件不断变化,否则您无需继续这样做。使用Visual Studio,一次生成安装程序,然后其余部分使用Mage。
编辑
 
通常,您可以使用setup.exe,并取决于用户是否需要运行setup.exe。如果他们已经具备先决条件并运行setup.exe,则不会发生任何不良情况。它会看到已安装所有内容,然后启动该应用程序。
通常,您将引导用户运行setup.exe。下次他们要启动该应用程序时,应使用开始菜单快捷方式(假设您不选择“仅在线”)。我发现这对用户来说是最容易混淆的说明。
还记得Visual Studio在发布时会如何做其他非ClickOnce的工作(例如setup.exe)?它还创建了一个简单的html页面,该页面具有指向ClickOnce清单和setup.exe的链接以及说明。它还具有一些JavaScript,用于检查UserAgent字符串以确定是否已安装.NET Framework。同样,这不是ClickOnce。这只是Visual Studio为您完成的一件好事。如果您喜欢它,请使用它。我有点像跳过它,然后运行run setup.exe进行安装,然后从开始菜单启动。