Tôi cần thực thi tệp bó như là một phần của quy trình chưa cài đặt trong dự án trình cài đặt Windows (tiêu chuẩn trình cài đặt OOTB VS 2008-vdproj). Người ta không thể thực thi một tập tin bat trực tiếp từ các hành động tùy chỉnh trong dự án cài đặt, vì vậy tôi đã viết một tập lệnh vbs nhanh để gọi tập tin bat bắt buộc.
vbs mã:Thực thi tệp tập lệnh từ Hành động tùy chỉnh Windows Installer
Set WshShell = WScript.CreateObject("WScript.Shell")
command = "uninstall-windows-serivce.bat"
msgbox command
WshShell.Run ("cmd /C " & """" & command & """")
Set WshShell = Nothing
Khi kịch bản này được điều hành độc lập với gỡ bỏ cài đặt, nó hoạt động một cách hoàn hảo. Tuy nhiên, khi chạy như một phần của quá trình gỡ cài đặt, nó không thực thi tệp bat (nhưng hộp thông báo được hiển thị, vì vậy tôi biết tệp vbs được gọi). Không có báo cáo lỗi (ít nhất là tôi có thể nói). Tại sao không làm việc kịch bản này như một phần của "Uninstall Tuỳ chỉnh hành động"
Mục đích của tệp lô là gì, bạn đang cố loại bỏ Dịch vụ Windows thông qua tệp bó? Nếu có một số cách dễ dàng hơn để thực hiện việc này bằng cách sử dụng một lớp Trình cài đặt trong dự án dịch vụ của bạn. Hãy cho tôi biết và tôi sẽ đăng mã tôi luôn sử dụng. –