Актуализиране на C# програма

Всяка относително издръжлива и сложна програма, която ще се използва не само на собствения компютър на разработчика, ще трябва да се актуализира от време на време. Това е алгоритъмът на модула за актуализиране на програма, написана на C #, която ще разгледаме в тази статия.

Как да актуализирате C# програма през интернет?

Програмата ще бъде актуализирана чрез най-простата подмяна на старата версия на програмата с нова. Но в същото време трябва да вземете предвид, че на изхода трябва да получим exe файл със същото име като преди и на същото място на диска. Тук възникват няколко въпроса. Ако самата програма, проверявайки версията си с най-новата, реши, че е необходимо да изтеглите актуализации, тогава как мога да я поставя на нейно място? Веднага става ясно, че програмата няма да може да направи това, докато работи. И така, ето плана за действие:

  1. Проверка за актуализация чрез проверка на версията на локалния файл спрямо най-новата версия на файла на сървъра.
  2. Изтегляне на последната версия на програмата и поставянето й в същата папка като работещата програма, само с друго име. Например, чрез добавяне на някакъв атрибут ala "нов". Този елемент означава, че програмата чака актуализацията да бъде окончателно изтеглена.
  3. Пускаме друга програма от ресурсите на програмата, която ще замени новата и старата версия на основната програма. (Тази програма за актуализиране може просто да се постави до нея по време на инсталацията и да се стартира при необходимост или може да се освобождава от ресурсите всеки път).
  4. Стартираме нашия актуализатор. Уверяваме се, че е започнала и завършваме работата си.

Алгоритъмът на програмата за актуализиране е следният:

  1. Уверяваме се, че нашата основна програма е приключила работата си.
  2. Изтрийстара версия на файла.
  3. Преименувайте новата версия на файла със стандартното име.
  4. Пускаме нова версия на файла.
  5. Уверяваме се, че новата програма е успешно изпълнена и прекъсната.

Също така, първият елемент в основната програма, дори преди да проверите за актуализации, можете да вмъкнете елемент, в който програмата ще провери дали нашият актуализатор лежи до него и в случай на положителен отговор го изтрива.

Код за актуализиране на програма в C#

Самият програмен код, който ще извърши посочените действия, не изглежда сложен и е написан доста просто. Следва моят метод, който изтегля актуализацията, освобождава актуализатора от ресурсите и го стартира, след което той се изрязва.

[csharp]private void load_obnovlenie(string path) try WebClient w = new WebClient(); низови адреси = Application.StartupPath; адрес += "\\new.program.exe"; w.DownloadFile(нов Uri(път), адреси); File.WriteAllBytes(Application.StartupPath + "\\obnov.exe", Properties.Resources.obnov); Process.Start(Application.StartupPath + "\\obnov.exe"); Process.GetCurrentProcess().Kill(); > catch (Exception ex) MessageBox.Show(ex.Message); > >[/csharp]

И ето основната логика на програмата за актуализиране:

[csharp] път на низ = Application.StartupPath + "\\program.exe"; низ път1 = Application.StartupPath + "\\new.program.exe"; Файл.Изтриване(път); File.Move(path1, path); Process.Start(path); Process.GetCurrentProcess().Kill();[/csharp]

Можете да го украсите с различни проверки, които бяха посочени в моя алгоритъм. Ето как програмата се актуализира в C # (по моя начин).