2012-03-09 19 views
5

Tôi đang tạo trình cài đặt cho SDK, bao gồm mã nguồn được người dùng cuối biên soạn.Tôi có thể tham khảo thư mục chính của người dùng trong WIX

Tôi muốn trình cài đặt Wix của mình đặt thư này vào thư mục chính của người dùng theo mặc định, nhưng tôi không thể tìm thấy tên thuộc tính phù hợp để sử dụng.

Trả lời

2

Tôi tin rằng bạn đang tìm kiếm PersonalFolder.

Có một danh sách đầy đủ các thư mục đặc biệt ở đây:

http://msdn.microsoft.com/en-us/library/aa370905%28VS.85%29.aspx#system_folder_properties

+0

PersonalFolder là thư mục Documents cho người sử dụng hiện tại, tôi đang tìm thư mục thực tế của người dùng. Thư mục Documents sẽ làm mặc dù vậy, cảm ơn! – Rob

+0

Ah! Xin lỗi vì điều đó. Vui mừng nó làm việc ra anyway. – gymbrall

3

Bạn cũng có thể tham khảo các biến HOMEPATH môi trường với [%HOMEPATH]. Để biết thêm chi tiết về cú pháp được sử dụng cho các thuộc tính, hãy xem kiểu dữ liệu Formatted.

+2

Trên ghi chú liên quan, cũng có '[% HOMEDRIVE]' mà bạn có thể tiền tố để có được một đường dẫn đầy đủ: '[% HOMEDRIVE] [% HOMEPATH]'. Ngoài ra, '$ (env.HOMEDRIVE) $ (env.HOMEPATH)' có thể được sử dụng. – Cameron

+2

... bỏ qua phần cuối của bình luận trước đó của tôi, các phiên bản '$ (env.)' Được đánh giá tại thời gian biên dịch, không cài đặt thời gian! Và lưu ý rằng cũng có '[% USERPROFILE]'. – Cameron

+0

... và nó chỉ ra rằng nó có thể cho '[% HOMEDRIVE] [% HOMEPATH]' khác với '[% USER_PROFILE]'. – Cameron

0

Bất cứ ai trong tương lai nhìn vào điều này, và tự hỏi làm thế nào để làm cho điều này [% HOMEPATH] làm việc sau đó hy vọng điều này sẽ giúp bạn:

<!-- Declare an action which binds the 'user home' to UserFolder 
    (You can replace [%HOMEDRIVE][%HOMEPATH] with [%USERPROFILE], read the difference from internet.) --> 
<CustomAction 
    Id='SpecifyUserFolder' 
    Directory='UserFolder' 
    Value="[%HOMEDRIVE][%HOMEPATH]" /> 

<!-- put this before installation process --> 
<InstallExecuteSequence> 
    <Custom Action="SpecifyUserFolder" Before="InstallFiles" /> 
</InstallExecuteSequence> 

<!-- User home then becomes available here, because the ID matches the declared ID in CustomAction above. --> 
<Directory Id='UserFolder'> 
</Directory>' 
Các vấn đề liên quan