Tôi có một tệp MSI được xây dựng từ C# Visual Studio 2010. Phiên bản được đặt thông qua thuộc tính Version
. Tôi muốn biết nếu có một cách để xác định phiên bản mà không cần phải cài đặt các tập tin. Hiện tại khi nhấp chuột phải và xem các thuộc tính nó không được hiển thị.Xác định phiên bản của MSI mà không cần cài đặt nó
Trả lời
Có - tôi nghĩ rằng bạn cần phải kiểm tra cơ sở dữ liệu MSI tuy nhiên, yêu cầu một số cuộc gọi API hoặc tiện ích trình bao bọc.
Microsofts ORCA ứng dụng sẽ cho phép bạn thực hiện việc này (mặc dù tôi chưa từng thử bản thân mình).
cảm ơn câu trả lời của bạn. Đối với bất kỳ ai khác, nó được tìm thấy trong tab 'Thuộc tính' trong ORCA –
Mã sau có thể hữu ích. Nhưng hãy nhớ rằng trước tiên bạn nên thêm một tham chiếu COM vào Thư viện đối tượng Trình cài đặt Windows của Microsoft và thêm không gian tên WindowsInstaller vào mã của bạn. Các chức năng sau đây có thể là những gì bạn cần.
public static string GetMsiInfo(string msiPath, string Info)
{
string retVal = string.Empty;
Type classType = Type.GetTypeFromProgID(“WindowsInstaller.Installer”);
Object installerObj = Activator.CreateInstance(classType);
Installer installer = installerObj as Installer;
// Open msi file
Database db = installer.OpenDatabase(msiPath, 0);
// Fetch the property
string sql = String.Format(“SELECT Value FROM Property WHERE Property=’{0}’”, Info);
View view = db.OpenView(sql);
view.Execute(null);
// Read in the record
Record rec = view.Fetch();
if (rec != null)
retVal = rec.get_StringData(1);
return retVal;
}
Nếu bạn cần phiên bản, hãy chuyển tên của tệp MSI bạn muốn, ví dụ:
string version = GetMsiInfo("d:\product.msi", “ProductVersion”);
cảm ơn, đoạn mã thực sự hữu ích. –
- 1. Trình cài đặt MSI không thành công mà không xóa cài đặt trước
- 2. số phiên bản msi
- 3. Có thể cài đặt nhiều phiên bản của node.js bằng các cửa sổ .msi không?
- 4. Cài đặt im lặng của gói MSI
- 5. Cài đặt Windows Định dạng MSI
- 6. Làm cách nào để gỡ cài đặt phiên bản trước đó như một phần của cài đặt msi?
- 7. MSI Install Thất bại vì "Một phiên bản của sản phẩm này đã được cài đặt"
- 8. RVM xác định và cài đặt phiên bản mới nhất của ruby
- 9. Tại sao tôi không thể xác định phiên bản cài đặt Ruby của mình?
- 10. Số phiên bản .NET (Phiên bản trình cài đặt)
- 11. Cài đặt maven2 mà không cần openjdk
- 12. Cài đặt tự động MSI
- 13. npm cài đặt mà không cần ssl
- 14. Bootstrapper: Kiểm tra xem msi phiên bản được cài đặt trước khi chạy
- 15. Dự án cài đặt .NET MSI - Ghi đè lên phiên bản trước
- 16. Cài đặt phiên bản cũ của gcc
- 17. Cách đăng ký tệp cài đặt của Visual Studio .msi
- 18. Cài đặt phiên bản mới của dự án triển khai trên phiên bản cũ
- 19. Xác định phiên bản OpenCV
- 20. Cài đặt Gói R mà không cần Internet
- 21. Cài đặt cloudera impala mà không cần quản lý cloudera
- 22. Cài đặt PHP 5 mà không cần libxml2
- 23. Chạy exe sau khi cài đặt msi?
- 24. Đặt số phiên bản AssemblyInfo với phiên bản thiết lập MSI
- 25. cách gỡ cài đặt phiên bản cũ của xcode
- 26. BỔ SUNG Gỡ cài đặt gói MSI
- 27. Phiên bản không cần thiết của expand.grid
- 28. Chạy Java thực thi mà không cần cài đặt JRE?
- 29. Cài đặt các phiên bản trước của R trên ubuntu
- 30. Phân phối ứng dụng mà không cần cài đặt mono
Hãy xem bài đăng của anh ấy. Điều này có thể hữu ích cho câu hỏi của bạn: http://stackoverflow.com/questions/815744/retrieving-version-of-an-msi-file-built-with-wix – hsalimi