================================發布===============================================
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的作用了