2011-07-27 20 views
7

Pracuję dla niestandardowego instalatora opracowanego w Visual Studio 2008 (instalacja & Deployment> Setup project) dla projektu C#. Chciałbym uruchomić plik wsadowy (* .bat) po zakończeniu instalacji. Jak mogę to zrobić?Jak uruchomić skrypt wsadowy po zakończeniu instalacji?

+0

Zastanawiam się też, dlaczego instalator VS pozwala mi używać tam tylko plików DLL exe js. – Cynede

Odpowiedz

6

Będziesz musiał przedłużyć klasę Installer i zastąpić wydarzenie Committed.

Oto example. Mam nadzieję, że będziesz w stanie znaleźć sposób uruchomienia pliku .bat w języku C#.

[RunInstaller(true)] 
public class ServiceInstaller : Installer 
{ 
    string strServiceName = "MyServiceName"; 

    public ServiceInstaller() 
    { 
     // ............. 

     this.Committed += new InstallEventHandler(ServiceInstaller_Committed); 
    } 

    void ServiceInstaller_Committed(object sender, InstallEventArgs e) 
    { 
     // Run your batch file 
    } 
} 

Custom Install Action to kolejna opcja. Here jest podobnym do tego wątkiem.

1

Można uruchomić plik wsadowy za pomocą cmd.exe, w każdym razie jest to, co wykonuje pliki wsadowe.

Uruchom go w ten sposób: cmd.exe /c <path-to-batch>\batchfile.bat.

+0

w konfiguracji na 2010 r. - nie ma możliwości zmiany ścieżki źródłowej pliku cmd.exe, która nie powiedzie się, gdy lokalizacja pliku cmd.exe w pliku c: \ winnt \ system32, ale system Windows 7 znajduje się w katalogu c: \ windows \ system32 Jestem zakorkowany – pithhelmet

+0

@pithhelmet '% comspec%' zmienna środowiskowa przechowuje pełną ścieżkę do 'cmd.exe'. '% windir%' wskazuje na katalog Windows, a następnie '% windir% \ system32 \ cmd.exe' poprawnie wskazuje na' cmd.exe'. Będzie działać, nawet jeśli system Windows nie znajduje się na dysku 'C:'. Ponieważ 'system32' jest wymieniony w zmiennej środowiskowej' PATH', możesz pominąć pełną ścieżkę do 'cmd.exe'. –

Powiązane problemy