Tôi muốn tự động lấy thư mục nguồn (và thư mục đích) để cài đặt 32/64 bit. Vậy làm thế nào tôi có thể xác định rằng trong phần [Tập tin] của thiết lập Inno. Sau đây đưa ra một lỗi biên dịch: ->Làm cách nào để sử dụng "mã" trong phần [Tệp] của Inno Setup?
[Files]
Source: {#MySourcePath}\{code:GetSourceLibFolder}\*.jar; DestDir: {code:GetAppDir}\lib\;
Tôi có GetSourceLibFolder()
và GetAppDir()
chức năng được xác định trong phần mã. Các chức năng rất đơn giản và chỉ trả về một biến:
function GetSourceLibFolder(Param: String): String;
begin
Result:= SourceLibFolder;
end;
function GetSourceBinFolder(Param: String): String;
begin
Result:= SourceBinFolder;
end;
Cảm ơn!
Tôi không chắc liệu chúng tôi có thể gọi mã của chúng tôi từ '[Code]' và sử dụng chúng ở những nơi khác trong tập lệnh InnoSetup hay không. Cách sử dụng câu lệnh '# define' để tạo một chuỗi áp dụng các hàm của bạn (giống như trong [http://stackoverflow.com/questions/2329979/can-the-setup-filename-be-derived-from-the-executable -file-version-number] (http://stackoverflow.com/questions/2329979/can-the-setup-filename-be-derived-from-the-executable-file-version-number)) –
Nguồn này ở đâu lib thư mục: là nó trong thư mục nguồn liên quan đến thư mục cơ sở của kịch bản InnoSetup của bạn? Tại sao bạn quan tâm đến thư mục đích khi bạn chỉ có thể sử dụng '{app}'? Ví dụ: giả sử tệp kịch bản InnoSetup của bạn nằm trong thư mục '. \' Và thư viện jar của bạn nằm trong '. \ Install \ lib' và bạn muốn chúng nằm trong thư mục' lib' của thư mục ứng dụng '{app}', bạn có thể định nghĩa 'Source:" install \ lib \ *. jar "; DestDir: "{app} \ lib" 'Cách dễ dàng: bạn có thể có một kịch bản InnoSetup riêng biệt cho mỗi thiết lập 32 bit và 64 bit bằng cách xác định thư mục nguồn khác nhau trong mỗi tệp kịch bản lệnh. – ecle
@eee: Tôi muốn có một trình cài đặt duy nhất cho các hệ thống 32 và 64 bit và vì vậy tôi có 2 thư mục "lib" khác nhau, viz. lib-32 và lib-64, mà tôi đặt động và do đó muốn đọc chúng động. – Saurabh