2011-04-18 38 views
6

Tôi đã đọc How do I pass msiexec properties to a WiX C# custom action?, nhưng điều đó không trả lời được câu hỏi của tôi hoặc có thể tôi không thấy những gì tôi đang làm sai. Gói cài đặt của tôi không cài đặt được và nhật ký cho biết thuộc tính của tôi không được tìm thấy trong bộ sưu tập tác vụ tùy chỉnh. Mã của tôi là:không thể chuyển thuộc tính sang hành động tùy chỉnh WiX

<CustomAction Id="SetCustomActionDataValue" Return="check" Property="Itp.Configurator.WixCustomAction" Value="G=G2" /> 
    <CustomAction Id="CreateDatabase" BinaryKey="Binary1" DllEntry="CreateDatabase" Execute="deferred" Return="check" /> 
    <InstallExecuteSequence> 
     <Custom Action='SetCustomActionDataValue' After="InstallFiles"/> 
     <Custom Action='CreateDatabase' After="SetCustomActionDataValue"> 
      NOT Installed AND NOT PATCH 
     </Custom> 
    </InstallExecuteSequence> 

Và mã bên trong hành động tùy chỉnh là:

string Property1 = session.CustomActionData["G"]; 

Trả lời

6

Các tên của thuộc tính trong phần tử đầu tiên của bạn phải chính xác giống như tên của hành động tùy chỉnh chậm bạn' d muốn chuyển giá trị cho. Vì vậy, nếu hành động trì hoãn là CreateDatabase, thì phần tử đầu tiên sẽ trông giống như sau:

<CustomAction Id="SetCustomActionDataValue" Return="check" Property="CreateDatabase" Value="G=G2" /> 
Các vấn đề liên quan