================================发布===============================================
1、右键程序,选择发布
2、选择要发布的位置,点击下一步(发布的位置就是IIS里面网站指定的文件夹)
3、选择从网站-》点击浏览-》选择相应的url地址(如果没有就自己手动填写)-》填写完点下一步
网站与对应的文件夹位置
4、选择"是",然后点击下一步
5、点击完成即可
6、发布的时候显示签名错误
解决方式就是把签名关了就行
右键项目-》属性-》签名-》把"为clickOnce清单签名"的√去掉即可。
发布成功
文件也生成成功
而且浏览器会自动跳转到页面 http://172.60.65.82:8070/publish.htm
============================安装=====================================
1、然后点击安装,就会自动下载文件 setup.exe文件了
2、下载完之后点击安装即可。
3、安装完成,直接点击就能使用了
===============================自动更新===========================================
1、程序修改之后,重新发布。然后客户端打开的时候,会自动校验程序是否已更新,若已更新,则会提示程序已更新
2、然后点击确定,程序会自动下载并且自动安装。这样程序的更新就完成了
===========================================
文件安装的地方是在 C:\Users\1812108004\AppData\Local\Apps\2.0\P3PB603D.EJN 这个地方。
至于配置文件等等的东西,能否正常读取。我还没验证过
参考:https://www.cnblogs.com/bdqczhl/p/10191678.html
=====================2021-02-22添加=====================
自动更新,要引用类 System.Deployment.Application 直接贴代码
using System; using System.Deployment.Application; using System.Threading; using System.Windows.Forms; namespace DoExcel { public partial class Form4 : Form { public Form4() { InitializeComponent(); lb_tip.Text = ""; timer1.Start(); } /// <summary> /// 启动 /// </summary> private void timer1_Tick(object sender, EventArgs e) { Thread td = new Thread(checkVersion); td.Start(); } /// <summary> /// 执行更新操作 /// </summary> private void checkVersion() { try { if (ApplicationDeployment.IsNetworkDeployed) { ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment; UpdateCheckInfo info = ad.CheckForDetailedUpdate(); if (info.UpdateAvailable) { if (!info.IsUpdateRequired) { lb_tip.Text = "有新版本,点击更新" + DateTime.Now.ToString(); lb_tip.Enabled = true; } } else { lb_tip.Text = ""; } } } catch (Exception e) { lb_tip.Text = e.Message; lb_tip.Enabled = false; } } /// <summary> /// 更新 /// </summary> private void lb_tip_Click(object sender, EventArgs e) { if (ApplicationDeployment.IsNetworkDeployed == true) { ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment; if (ad.CheckForUpdate() == true) { if (MessageBox.Show("检测到有新的版本可以进行更新,现在需要更新吗?", "选择是否要进行更新", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { ad.Update(); Application.Restart(); } } } } public delegate void SetTextCallback(string text,Label label); public void setLabel(string text,Label label) { if (label.InvokeRequired) { SetTextCallback s = new SetTextCallback(setLabel); Invoke(s, new object[] { text, label }); } else { label1.Text = text; } } } }
如果想要每一次打开都不显示更新的页面,如下页面,可以设置更新时间
把更新时间设置为52周,基本就相当于不更新了,这样就不会每一次打开都显示上面的页面了
配置文件要自己生成,例如要在本地配置一些什么东西,只需程序运行额时候生成一个文件就行了,然后还需要读取等等
例如:在安装路径下生成一个txt文件
public void setFile() { try { using (FileStream fs = new FileStream(Environment.CurrentDirectory + "\\123.txt", FileMode.Append)) { using (StreamWriter wr = new StreamWriter(fs)) { wr.WriteLine(DateTime.Now.ToString()); } } } catch (Exception) { } }
然后写一个页面对这个文件进行操作即可。就可以代替配置文件config的作用了