Актуализиране на C# програма
Всяка относително издръжлива и сложна програма, която ще се използва не само на собствения компютър на разработчика, ще трябва да се актуализира от време на време. Това е алгоритъмът на модула за актуализиране на програма, написана на C #, която ще разгледаме в тази статия.
Как да актуализирате C# програма през интернет?
Програмата ще бъде актуализирана чрез най-простата подмяна на старата версия на програмата с нова. Но в същото време трябва да вземете предвид, че на изхода трябва да получим exe файл със същото име като преди и на същото място на диска. Тук възникват няколко въпроса. Ако самата програма, проверявайки версията си с най-новата, реши, че е необходимо да изтеглите актуализации, тогава как мога да я поставя на нейно място? Веднага става ясно, че програмата няма да може да направи това, докато работи. И така, ето плана за действие:
- Проверка за актуализация чрез проверка на версията на локалния файл спрямо най-новата версия на файла на сървъра.
- Изтегляне на последната версия на програмата и поставянето й в същата папка като работещата програма, само с друго име. Например, чрез добавяне на някакъв атрибут ala "нов". Този елемент означава, че програмата чака актуализацията да бъде окончателно изтеглена.
- Пускаме друга програма от ресурсите на програмата, която ще замени новата и старата версия на основната програма. (Тази програма за актуализиране може просто да се постави до нея по време на инсталацията и да се стартира при необходимост или може да се освобождава от ресурсите всеки път).
- Стартираме нашия актуализатор. Уверяваме се, че е започнала и завършваме работата си.
Алгоритъмът на програмата за актуализиране е следният:
- Уверяваме се, че нашата основна програма е приключила работата си.
- Изтрийстара версия на файла.
- Преименувайте новата версия на файла със стандартното име.
- Пускаме нова версия на файла.
- Уверяваме се, че новата програма е успешно изпълнена и прекъсната.
Също така, първият елемент в основната програма, дори преди да проверите за актуализации, можете да вмъкнете елемент, в който програмата ще провери дали нашият актуализатор лежи до него и в случай на положителен отговор го изтрива.
Код за актуализиране на програма в 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 # (по моя начин).