Cześć,
Mam taki problem mam prosty projekt Windows Service i zrobiłem sobie do tego SetupProject żeby instalował usługę, ogólnie wszystko działa z tym, że chciałbym żeby po wydaniu nowej wersji instalka aktualizowała, zamiast ręcznego usuwania poprzedniej wersji i istalowania nowej.
Ustawione RemovePreviousVersions =true, po usunięciu z AssemblyVersion (zakomentowaniu) instalacja przebiega bez komunikatu błędu, ale numer wersji usługi się nie zmienia.
I tu moje pytanie, czy da rade napisać jakiś custom uninstalator żeby go wywołać jako customAction albo, może gdzieś popełniam błąd?
Wszelka pomoc mile widziana i z góry dziękuje :)
- Rejestracja:około 10 lat
- Ostatnio:ponad 5 lat
- Postów:15
0
- Rejestracja:około 10 lat
- Ostatnio:ponad 5 lat
- Postów:15
0
Okej, odpowiedzi nie dostałem ale udało mi się dojść do niego samodzielnie, więc pozostawiam je tutaj dla potomnych, co by się komuś może przydało kiedyś ;)
Stworzyłem sobie klase dziedziczącą po System.Configuration.Install.Installer gdzie mam sobie void BeforeInstallService który za każdym razem gdy wywoływana będzie instalacja będzie PRZED nią usuwała poprzednią wersję serwisu i wygląda on tak:
private void BeforeInstallService(object sender, InstallEventArgs e)
{
List<ServiceController> services = new List<ServiceController>(ServiceController.GetServices());
foreach (ServiceController s in services)
{
if (s.ServiceName == this.serviceInstaller.ServiceName)
{
ServiceInstaller ServiceInstallerObj = new ServiceInstaller();
ServiceInstallerObj.Context = new System.Configuration.Install.InstallContext();
ServiceInstallerObj.Context = Context;
ServiceInstallerObj.ServiceName = "xxxNAZWA";
ServiceInstallerObj.Uninstall(null);
}
}
}
Dodatkowo możemy sobie w tej klasie ustawić, żeby nasza usługa Od razu po instalacji się uruchamiała:
protected override void OnCommitted(IDictionary savedState)
{
new ServiceController(serviceInstaller.ServiceName).Start();
}
Mam nadzieję że może kiedyś typ pomogę :)
edytowany 1x, ostatnio: cecececezar
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.