Jak uruchomić a".bat " plik podczas instalacji?
W projekcie instalacyjnym pliki wykonywalne, takie jak ".exe ,dll , .js ,vbs " są dopuszczalne, ale nie ma możliwości uruchomienia pliku .bat
w niestandardowej akcji.
Pytanie jak uruchomić pliki *.bat
podczas instalacji?
4 answers
Cóż, po wielu poszukiwaniach i próbach i błędach rozwiązałem to. Nie jestem pewien, czy to najlepszy sposób, ale to działa.
Oto scenariusz: mam aplikację, którą chciałbym wdrożyć za pomocą projektu instalacyjnego Visual Studio. Oprócz plików aplikacji, chciałbym utworzyć podkatalog w katalogu docelowym, który zawiera batch (.bat) plik. Chciałbym, aby ten plik został uruchomiony pod koniec procesu instalacji.
Oto co Ty do:
- Utwórz projekt instalacyjny i skonfiguruj tak, jak zwykle, włączając w to podkatalog, w którym umieścisz plik wsadowy(możesz go po prostu umieścić bezpośrednio w folderze aplikacji, Jeśli nie chcesz go w podkatalogu).
- W widoku" system plików " (kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań->Widok->System plików) Dodaj plik wsadowy, który chcesz wykonać i cmd.exe (C:\Windows\System32\cmd.exe)
- Otwórz widok "działania niestandardowe" (kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań->Widok - > działania niestandardowe)
- Kliknij prawym przyciskiem myszy "Zatwierdź" i wybierz "Dodaj niestandardową akcję"
- przejdź do i wybierz cmd.exe.
- otwiera panel właściwości dla nowo utworzonej akcji niestandardowej.
- Usuń / Zatwierdź z właściwości Arguments.
- Enter:
/c "[TARGETDIR]subdirectoryname\batchfile.bat"
we właściwości Arguments, gdzie nazwa podkatalogu powinna być zastąpiona nazwą Twojego podkatalogu (jeśli umieścisz plik wsadowy w podkatalogu tak jak ja... jeśli nie, wartość powinna być/c "[TARGETDIR]batchfile.bat"
) i batchfile.bat powinien być nazwą pliku wsadowego.
Oto przykład dla jasności:
Mój plik wsadowy: bla.bat
Mój podkatalog: mydir
Wartość argumentów dla mojej niestandardowej akcji targetującej cmd.exe wtedy be
/c "[TARGETDIR]mydir\blah.bat"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-09 21:57:07
Innym sposobem osiągnięcia tego samego wyniku jest umieszczenie a .plik vbs w niestandardowych akcjach, które uruchamiają korespondenta .plik bat. Poniższy kod to " RunRegisterComponents.vbs " umieściłem w folderze instalacyjnym aplikacji. Oczywiście, że umieściłem [TARGETDIR] jako .parametr vbs w oknie Właściwości Visual Studio.
dim WshShell
Set WshShell = CreateObject("WScript.Shell")
' Read the "CustomActionData" property holding the install directory.
dim programDir
programDir= property("CustomActionData")
' Make the batch full file name and parameter
commandString = chr(34) & programDir & "RegisterComponents.bat" & chr(34) & " " & chr(34) &
programDir& chr(34)
' Set the current directory
WshShell.CurrentDirectory = programDir
' Run batch.
ret = WshShell.Run (commandString, 0, 0)
To tak jak ustawiam własne akcje:
Mam nadzieję, że to ci pomoże!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-12 13:13:10
-
Sprawdź ten artykuł (artykuł jest przestarzały), mimo że jest w VB.NET dotyczy to również C#. Najważniejszą częścią jest (przetłumaczone na język C#) utworzenie nowej biblioteki klas i dodanie nowej klasy Instalatora o następującej treści: jak opisano w artykule, możesz następnie utworzyć nową akcję niestandardową z odniesieniem do właśnie utworzonego projektu.
override void Commit(IDictionary savedState) { base.Commit(savedState); System.Diagnostics.Process.Start("myApp.bat","your bat arguments"); }
Teraz dodajemy plik wsadowy do twojego projektu Instalatora. Utwórz projekt konfiguracji i skonfiguruj jak normalnie tak, włączając podkatalog, w którym umieścisz plik wsadowy(możesz po prostu umieścić go bezpośrednio w folderze aplikacji, Jeśli nie chcesz go w podkatalogu).
W widoku" system plików " (kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań->Widok->System plików) Dodaj plik wsadowy, który chcesz wykonać.
Zbuduj projekt instalatora.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-30 09:58:56
Jeśli podczas instalacji próbujesz uruchomić plik wsadowy ze ścieżkami względnymi, to na pewno się to nie uda. Dzieje się tak dlatego, że plik wsadowy będzie uwzględniał katalog, w którym działa instalator, a nie miejsce, w którym pliki były instalowane. Użyj instalatorów kopiujących pliki wsadowe do katalogu tymczasowego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-14 12:01:03