最近老板出差,总结下VS下WPF项目的ClickOnce发布,这套流程感觉简捷明了,对于非大型项目还是比较实用,跟installshield,WixToolSet比起来很暴力。
下面用一个WPF项目为例,通过IIS Express暴力部署:
1、选择主项目签名,并将测试证书安装到测试机
2、上传打包文件,可以上传至指定路径或者FTP站点,这里上传指定路径,然后选择IIS网点地址
在“安装模式和设置”中可以设置系统必要库,更新策略等,选择“选项”-“部署”,生成部署网页
ClickOnce也提供了更新API,可手动异步更新
private void OnUpdate(object sender, RoutedEventArgs e)
{
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment.CurrentDeployment.CheckForUpdateCompleted +=
(sender1, e1) =>
{
if (e1.UpdateAvailable)
{
ApplicationDeployment.CurrentDeployment.UpdateCompleted +=
(sender2, e2) =>
{
MessageBox.Show("Update completed");
};
ApplicationDeployment.CurrentDeployment.UpdateAsync();
}
else
{
MessageBox.Show("No update available");
}
};
ApplicationDeployment.CurrentDeployment.CheckForUpdateAsync();
}
}
3、然后无脑部署,选择“发布向导”,发布,完成后输出中提示网页无法访问,然后稍微配置下IIS Express
4、以管理员身份进入C:\Users\<account>\Documents\IISExpress\config,配置applicationhost.config,新增一个site节点,跟发布的信息对齐
5、重启iis express,以管理员身份启动,看到站点已被注册,访问发布网址
ClickOnce部署提供下载,安装时默认安装到系统程序缓冲区,不提供自定义路径,一般在appdata/local/里面,安装时也没有权限检测,不同组的用户看到的路径可能不同。