2012-07-09 61 views
6

Tôi đã sử dụng đoạn mã wix sau để cập nhật biến môi trường "PATH".Không thể cập nhật biến môi trường "PATH" bằng WIX

<DirectoryRef Id="MyDir"> 
    <Component Id ="setEnviroment" 
          Guid=" xxxxx"> 
      <CreateFolder /> 
      <Environment Id="SET_ENV" 
             Action="set"                       
             Name="PATH" 
             Part="last"  
             Permanent="no" 
             System="yes" 
         Value="[INSTALLLOCATION]" /> 
     </Component> 
</DirectoryRef> 
<Feature Id="Feature3" Title="3Feature" 
      Level="1" 
       Absent="disallow" 
       AllowAdvertise="no"> 
      <ComponentRef Id="setEnviroment"/> 
</Feature> 
<InstallExecuteSequence> 
    <WriteEnvironmentStrings/> 
<InstallExecuteSequence/> 

Điều này đã hoạt động lúc đầu nhưng hiện tại nó không cập nhật biến môi trường. Nhật ký chi tiết cho thấy việc thực hiện hành động này và giá trị trả về 1. Đã kiểm tra sau khi khởi động lại máy. Trong nhật ký cho hành động FeaturePublish Đối với Feature3 có giá trị rác nhưng Cài đặt thành công. Yêu cầu trợ giúp của bạn trong việc này ...... Cảm ơn rất nhiều ....

+0

bạn đã thử nó mà không có ?. Và bạn đang đặt INSTALLLOCATION ở đâu? –

Trả lời

11

Tôi nghĩ bạn đang sử dụng INSTALLLOCATION nơi bạn muốn sử dụng INSTALLDIR. Đây là một ví dụ làm việc cập nhật môi trường PATH var với thư mục cài đặt của ứng dụng mới.

<Environment 
    Id="PATH" 
    Name="PATH" 
    Value="[INSTALLDIR]" 
    Permanent="yes" 
    Part="last" 
    Action="set" 
    System="yes" /> 

Nếu có ý định sử dụng INSTALLLOCATION và xác định ở nơi khác, vui lòng đăng phần còn lại của mã và chúng tôi sẽ đi sâu xuống hố thỏ.

+0

Tôi đang cố gắng đặt biến env bằng câu trả lời này nhưng không thành công: Tôi không thể tìm đúng vị trí cho 'Môi trường'. Ai đó có thể giải thích nơi tôi nên đặt thẻ 'Environment' trong tệp wx của tôi: gist.github.com/pyeremenko/891eceb779197e4be240 –

+0

@PeterYeremenko:' 'được cho là được đặt vào thẻ' '. – c00000fd

Các vấn đề liên quan