2011-11-26 67 views
1

我已經創建了一個應用程序。如何使用c將消息發送到我的客戶端應用程序#

我通常在我的應用程序中進行更改。

但是,誰接受了我的申請的人需要知道,我在

應用程序已經更新。

我不能叫大家說,我已經更新我的應用程序,可以ü請從我的網站下載

我想給消息使用C#我的客戶應用程序。

我不知道我怎麼可以把它以及他們如何能接受它。

會有很大的升值,如果有人colud幫助我。

在此先感謝。

回答

2

您可以(如果您的應用程序正在使用它,如果不是 - 一個文件,如XML,就夠了)創建數據庫應用程序的最新版本中的一個表,讓你的應用程序來檢查負載,如果用戶版比數據庫中的低。如果是這樣的:顯示與鏈接信息,即「新版本可用,請從這裏下載...」

+0

可以請舉個例子,因爲我不知道消息傳遞 –

+0

這裏是一個如何通過網絡從XML文件讀取數據的例子。在第8/9步中你的代碼會簡單得多。 [鏈接](http://support.microsoft.com/kb/307643)如果談論數據庫連接 - 它取決於您正在使用的數據庫系統,但它是一個普通的查詢,如''SELECT last_version FROM tbl_info''。 – mj82

0

你可能把你的應用程序下載到網上的權利?然後也放入版本文件。

您的應用程序可以自動比較其版本的在線版本的文件,然後通知用戶或者自動下載更新的版本。

static public class Deployment 
{ 
    public static readonly string WebSite = @"...."; 
    public const string version_filename = "version"; 

    static string get_version(Stream stream) 
    { 
     var lines = new List<string>(); 

     var reader = new StreamReader(stream); 

     while (true) 
     { 
      var s = reader.ReadLine(); 
      if (s == null) 
       break; 

      lines.Add(s); 
     } 

     stream.Close(); 

     return lines.Join(CHAR.LineFeed).Trim(); 
    } 
    static string GetWebVersionInfo() 
    { 
     try 
     { 
      var client = new WebClient(); 
      using (var stream = client.OpenRead(WebSite + version_filename)) 
       return get_version(stream); 
     } 
     catch 
     { 
      return null; 
     } 
    } 
    static string GetLocalVersionInfo() 
    { 
     try 
     { 
      using (var stream = new FileStream(System.IO.Path.GetDirectoryName(ProgramInfo.FilePath) + 
               System.IO.Path.DirectorySeparatorChar + 
               version_filename, FileMode.Open, FileAccess.Read)) 
       return get_version(stream); 
     } 
     catch 
     { 
      return null; 
     } 
    } 
    static public bool IsNewVersionAvailable() 
    { 
     var web_version = Deployment.GetWebVersionInfo(); 
     var exe_version = Deployment.GetLocalVersionInfo(); 

     return (web_version != null && (exe_version == null || exe_version.Comparison(web_version) == CompareEnum.Less)); 
    } 

} 

它不會編譯馬上因爲一些雞毛蒜皮的符號缺少在這裏,但你的想法,我希望。

+0

是的,你說得對!但你可以請舉一些例子,因爲我不知道消息傳遞 –

+0

@Sharrok G,完成。它幾乎準備好使用代碼。 – greenoldman

相關問題