要使用此部署,客戶機必須有.net framework 並且要有一個internet串連.此外,用於部署的系統必須是一個安裝有.net 和iis 的web伺服器
被部署的應用程式放在伺服器上的一個目錄中,可以用一個url來定位。然後,應用程式可以通過以下二種方式之一來啟動:
在WEB頁面上單擊指向伺服器上應用程式的啟動EXE的連結。
使用一個小“啟動程式”應用程式指向伺服器上的主應用程式。這個啟動程式實際上是指嚮應用程式的一個本地捷徑。
此二者都是從internet上下載應用程式並在本地執行.
以下是具體步驟:
1:嚴格按照開發windows表單應用程式的方法構建表單應用程式
2開發完成後,為應用程式中的所有windows表單項目更改編譯選項以建立一個DLL檔案.假設我們已建立了一個AppDll1.dll.
3將包含應用程式的所有DLL複製到一個WEB檔案夾中.這包括應用程式的用於啟動WINDOWS表單的DLL, 以及應用程式所需組件或其他DLL.
4:建立啟動程式,主要使用了反射功能.開始一個新的應用程式.在表單上放一個按鈕.代碼如下:
using System.Reflection;
try
{
string sUrl=“htpp://mywebserver/myapp/appdll1.dll“;
Assembly objAss=Assembly.LoadFrom(sUrl); //獲得程式集
Type formType=objAss.GetType(“MyProjectName.StartForm“); //獲得程式集中清單中的類型
object obj=Activator.CreateInstance(formType); //根據類型動態建立一個對象
Form f=(Form)obj;
f.Show();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
當我們啟動應用程式時,看一下後台所發生的事性:
啟動時,它請求從客戶機上尚未存在的程式集載入類,此時將自動從部署WEB伺服器上擷取程式集並放到本地客戶機上.它駐留在客戶機的應用程式下載快取中.一旦將程式集放置到客戶機上的應用程式下載快取中,就可以從程式集載入和運行類.這包括所有必需的表單(表單也是一個類).或所有其他屬於應用程式的對象.我們可以查看下載了哪些程式集:
> gacutil /ldl 此命令列可以查看客戶機上下載程式集清單
應用程式由從WEB伺服器載入的表單控制,它可以根據需要執行操作和載入其他的表單.如果從同一個程式集載入另外的表單,那些表單會自動載入而不需要任何特殊邏輯.
當.NET 在下載快取中尋找程式集時,如果找到了,那麼它會檢查程式集的版本.同時還在WEB伺服器上檢查相同程式集的目前的版本(如果internet串連可用).如果在WEB伺服器上存在程式集的新版本,則將該新版本下載快取並代替原來的版本以進行使用.這使得自動部署會自動執行.
如果應用程式離線工作模式(internet不可用).那麼將會跳過目前的版本測試.並在下載快取中使用原來版本.