不用ClickOnce,做我們個性的自動更新功能

2021-05-22 08:08:10 字數 1337 閱讀 7129

說到c#.net的更動更新 大家都想到了clickonce,但很多時候它的功能並沒有我們需要的足夠的強大。其實它的原理很簡單,為什麼我們不自己開發一套呢?下面以我的開發例項與大家交流一下。

原理:1.伺服器有一虛擬目錄update,裡面放置客戶端的所有程式(由於iis限制,不能公升級.config檔案,如需要則改iis相應配置)

2.update目錄裡再放置一default.aspx檔案,用來取出當前資料夾下的檔案列表和檔案修改時間,並形成乙個xml返回出來。

3.客戶端公升級程式使用httpwebrequest物件訪問這個http://server/update/default.asp

**:(update/default.aspx檔案)

<%@ page language="c#" %>

<%@ import namespace="system.io" %>

string retvalue = "";

for (int i = 0; i < filelist.count; i++)

retvalue += "";

response.write(retvalue);

%>

好,上面的**很簡單,就是獲得伺服器更新目錄裡的所有檔案列表與檔案的修改時間返回出來。

客戶端檢查更新的**:

引用:using system.reflection;

using system.collections;

using system.componentmodel;

using system.text;

using system.xml;

using system.io;

using system.net;

using system.collections.generic;

using system.threading;

全域性變數:

private sortedlist directorylist = new sortedlist();

private int m_filenum = 1;

// 函式fndoupdate

private void fndoupdate()

// 好了 到這裡需要做的都寫完了 下面是呼叫了 一定要用多執行緒來呼叫

thread t = new thread(new threadstart(fndoupdate));

t.start();

好了,簡單的自動更新功能就這麼簡單的完成了,你可以根據需要修改其中任意環節為自己想要的。

上面的**是我在複雜的**中把複雜的部分去掉了,也許你直接copy過去用會編譯不過,但我想

應該容易修改正確,希望大家多多指正。

不用加減乘除做加法與不用新的變數交換兩個變數的值

不用加減乘除做加法 第一步 不考慮進製對每一位相加,0加0的0,0加1的1,1加0的1,1加1的0,這個結果和異或的結果相同 第二步 只有1加1會進製,這個結果和與的結果相同 第三步 將兩步的結果相加,重複上面的操作,直到不產生進製 int add int num1,int num2 while n...

不用加減乘除做運算

1 乙個數擴大n倍 直接用移位,擴大n倍相當於是原來的 n 1 倍,例擴大7倍,則是原來的8倍,那就左移3位 2 不使用新的變數,交換兩個變數的值 用異或運算 a a b b a b a a b 3 求兩個整數之和 對數字做運算,除了四則運算之外,也 就只剩下位運算了。位運算是針對二進位制的,我們就...

不用加減乘除做加法

author 過路的守望 思路 i 先將各bit位相加,不計進製,這一步可以用m n實現 ii 加上進製,進製如何來,用m n可以得到m和n中都為1的bit位,而不全為1的位則全部變為了0,該位相加會發生進製,使得左邊一位加1,因此 m n 1邊可得到進製後要加的1的位置 iii 將前面兩步的結果相...