Về cơ bản những gì tôi cần là cách tự động cập nhật số phiên bản sản phẩm trong WiX (3.0 với Votive v.v.), và sau đó nhận số phiên bản đó vào Cài đặt Inno " Tôi khá nhiều có quá trình chủ yếu là tự động, tuy nhiên số phiên bản vẫn cần phải được cập nhật thủ công mà rõ ràng không phải là lý tưởng, nhưng tôi không thể tìm cách chuyển giá trị cho Inno Setup vào thời gian biên dịch (và làm thế nào để tham khảo chúng), và trong dự án WiX tôi cần biết cách tham khảo số phiên bản của một dự án khác nhau trong cùng một giải pháp trong Visual Studio 2008Số phiên bản tự động tạo với WiX, Inno Setup và VS2008
Trả lời
Không cần phải vượt qua bất kỳ điều gì! Bạn có thể chỉ cần cho Bộ xử lý trước của InnoSetup đọc thông tin phiên bản ngay từ tài nguyên phiên bản nhị phân, ví dụ::
#define AppName "My App"
#define SrcApp "MyApp.exe"
#define FileVerStr GetFileVersion(SrcApp)
#define StripBuild(str VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1)
#define AppVerStr StripBuild(FileVerStr)
[Setup]
AppName={#AppName}
AppVersion={#AppVerStr}
AppVerName={#AppName} {#AppVerStr}
UninstallDisplayName={#AppName} {#AppVerStr}
VersionInfoVersion={#FileVerStr}
VersionInfoTextVersion={#AppVerStr}
OutputBaseFilename=MyApp-{#FileVerStr}-setup
Trước phiên bản 5.4.1 (2011-02-09) ISPP không được bao gồm trong gói InnoSetup mặc định. Bạn phải tải xuống Gói khởi động nhanh InnoSetup: http://www.jrsoftware.org/isdl.php#qsp (nhờ @Gwyn, để cập nhật)
Cách tôi làm với kịch bản WSF (tôi sử dụng JavaScript nhưng bạn có thể sử dụng VBScript hoặc thậm chí một kịch bản lệnh SH sử dụng Cygwin) để tạo một tệp tiêu đề chứa các định nghĩa cho các số phiên bản. Bạn có thể sử dụng câu lệnh Wix <include>
để kéo số phiên bản.
Để thiết lập Inno Tôi tạo tệp .iss chứa số phiên bản, được bao gồm trong tập lệnh iss chính.
Tôi đang ở nhà nhưng có thể đăng một số mã mẫu vào ngày mai nếu bạn muốn.
EDIT: Tôi quên đề cập đến rằng tôi chạy tập lệnh tạo các tệp chứa số bản dựng trong giai đoạn dựng sẵn của các dự án VS khác nhau của tôi.
Tôi sẽ đánh giá cao mã mẫu nếu bạn không phiền :) Cảm ơn – Davy8
Tôi thấy điều này cho phần thiết lập INNO mà có vẻ như nó sẽ làm việc:
Vâng, nhưng tại sao phải trải qua tất cả những rắc rối đó khi bạn có thể đơn giản có trình biên dịch Inno lấy số từ tài nguyên thông tin phiên bản nhị phân nguồn (xem câu trả lời của tôi)? Tránh sử dụng hai lần (chẳng hạn như đặt phiên bản thủ công cả vào tài nguyên và một số tệp văn bản) ở bất kỳ nơi nào có thể. –
Một số mẫu mã như đã hứa. Điều này là đủ để bạn bắt đầu.
Có thể sử dụng JavaScript sau để tạo tệp InnoSetup chứa số phiên bản. Các tập tin thực tế sẽ giống như thế này:
VersionInfoVersion=1.2.3.12345
AppVerName=My App v1.2.3.12345
Các Inno Setup kịch bản chính sẽ bao gồm tập tin này bằng cách thêm dòng sau vào cuối [Setup] phần:
[Setup]
AppId={{...}}
...
#include "version.iss"
Đây là JavaScript (điều này sẽ được lưu dưới dạng tệp riêng biệt - version.js chẳng hạn):
createInnoSetupIncludeFile("My App", 1, 2, 3, 12345, "version.iss");
function createInnoSetupIncludeFile(appName, verMajor, verMinor, verSubMinor, buildNumber, headerFileName)
{
var versionString = verMajor + "." + verMinor + "." + verSubMinor + "." + buildNumber;
var fileSystemObject = WScript.CreateObject("Scripting.FileSystemObject");
var fileObject = fileSystemObject.CreateTextFile(headerFileName, true);
fileObject.WriteLine("VersionInfoVersion=" + versionString);
fileObject.WriteLine("AppVerName=" + appName + " v" + versionString);
fileObject.Close();
fileObject = null;
fileSystemObject = null;
}
Bạn có thể tinh chỉnh tập lệnh này để tạo tệp version.iss n một thư mục khác.
Cuối cùng, bạn cần phải thực thi JavaScript - nơi tốt nhất sẽ là trong sự kiện Pre-Build của dự án Visual Studio của bạn. Thêm thông tin sau:
cscript version.js //NoLogo
Bạn sẽ cần phải thay đổi điều này để xây dựng tệp bao gồm tương thích Wix. Tôi đã từng làm điều này, nhưng đổ Wix ủng hộ Inno Setup, vì vậy tôi không có mã này để tay. Có một mechamism cho một kịch bản Wix mặc dù, do đó, nên chỉ cho bạn đi đúng hướng - khái niệm là như nhau - tạo ra một tập tin văn bản xác định số phiên bản và sau đó bao gồm nó.
Hy vọng điều này sẽ hữu ích.
Cảm ơn, không chắc tôi sẽ đi với bạn hoặc của Oliver chưa nhưng +1 cho cả hai bạn :) – Davy8
Bạn có thể nhận ProductVersion cho WiX từ phiên bản tệp trong gói của bạn. Cú pháp là cái gì đó như:
<Product Version="$(var.FileVersion.FileId)">
Hoặc bạn có thể cung cấp cho nó trên dòng lệnh để nến bằng cách sử dụng "-dVersionFromCommandLine = 1.0.0.0" chuyển đổi với cú pháp như sau:
<Product Version="$(var.VersionFromCommandLine)">
Hoặc làm việc tại mới nhất xây dựng của WiX v3. Chỉ có tác phẩm thứ hai hoạt động trên WiX v2.
Rob đã trả lời câu hỏi này trong http://stackoverflow.com/questions/626033/how-can-i-set-the-wix-installer-version-to-the-curent-build-version đúng hơn tôi nghĩ. Bạn phải sử dụng! (Bind.FileVersion.MyFileId) – vasquez
- 1. Inno-setup 32bit và 64bit trong một
- 2. Quản lý số phiên bản lắp ráp tự động trong VS2008
- 3. Cài đặt tệp bất kể số phiên bản với WiX
- 4. Cách thêm tác vụ theo lịch với Inno Setup
- 5. Inno Setup RegKeyExists trên 64 bit
- 6. WIX - tự động cập nhật
- 7. Inno-Setup: cách cho phép người dùng chọn tự khởi động hay không?
- 8. Làm thế nào để ký số hóa tập tin cài đặt tạo ra Inno Setup?
- 9. Kịch bản phát hành tự động và dự án Visual Studio Setup
- 10. Chạy trình cài đặt khác trong cài đặt Inno Setup
- 11. Inno Setup Hình ảnh bitmap không hợp lệ
- 12. Tôi có thể đọc thông tin AssemblyFile trong Inno Setup
- 13. tự động tạo phiên bản nối tiếp uid trong eclipse
- 14. Trình tự hành động WiX
- 15. .NET Framework là điều kiện tiên quyết để cài đặt với Inno-Setup
- 16. Có thể sử dụng các biến môi trường trong kịch bản lệnh Inno Setup không?
- 17. Hoàn toàn tự động quy trình phát hành với phiên bản + phiên bản bổ sung
- 18. Phiên bản phần mềm tự động Qt?
- 19. WiX-- luôn ghi đè lên phiên bản trước
- 20. Chạy devenve.exe/setup sau khi gỡ cài đặt trong Wix
- 21. Tự động tăng và đồng bộ hóa phiên bản cho sản phẩm và bootstrapper
- 22. Bao gồm tệp tự động WiX
- 23. Tự động cập nhật trình cài đặt WiX với các tệp mới được tạo
- 24. Làm thế nào để chạy một tệp trước khi thiết lập với Inno Setup
- 25. Nâng cấp dịch vụ Windows bằng cách sử dụng Inno Setup
- 26. Làm thế nào để tạo một ứng dụng IIS và nhóm ứng dụng bằng cách sử dụng kịch bản lệnh Inno Setup
- 27. Làm cách nào để đặt phiên bản trình cài đặt WiX thành phiên bản hiện tại?
- 28. Cách nâng cấp cài đặt MSI bằng trình cài đặt Inno Setup?
- 29. Tự động hóa các cập nhật nhỏ wix và các nâng cấp nhỏ
- 30. Làm cách nào để sử dụng "mã" trong phần [Tệp] của Inno Setup?
Wow! Thật tuyệt vời! +1. Bực bội rằng ISPP không phải là một phần của gói mặc định. – Rob
+1 Bạn có thể lấy tất cả các giá trị versioninfo từ exe của mình. Tôi đã sử dụng Inno (và ISTool) vài năm nay cho tất cả các sản phẩm của mình, và tôi nghĩ nó khá ... đẹp. – Spike0xff
Kể từ 5.4.1 (2011-02-09), nó là ... –