Tôi có tài sản sau đây:Values Wix Boolean tài sản Đừng Làm việc
<Property Id="UPDATEDB">1</Property>
Một hộp kiểm trong UI ràng buộc để tài sản đó:
<Control Id="updateDatabase" Type="CheckBox" CheckBoxValue="1" Height="15" Width="95" X="20" Y="74" Text="Update Database" Property="UPDATEDB" />
Và một hành động Custom mà làm điều gì đó dựa trên giá trị của thuộc tính này
<CustomAction Id="RunDbMigration" Directory="INSTALLDIR" Return="check"
ExeCommand='[DBMIGRATIONDIR]\DbMigration.exe' />
<InstallExecuteSequence>
<Custom Action="RunDbMigration" After="InstallFinalize">UPDATEDB=1 AND NOT Installed</Custom>
</InstallExecuteSequence>
Nếu tôi cố gắng chuyển giá trị 0 cho UPDATEDB từ dòng lệnh:
msiexec /i "Setup.msi" /l* UPDATEDB=0
hoặc
msiexec /i "Setup.msi" /l* UPDATEDB="0"
giá trị của hộp kiểm được kiểm tra anyway. Điều đó nói rằng, 0 được truyền vào dường như được tôn trọng và hành động RunDbMigration không chạy ...
Điều gì đang xảy ra ở đây? Tại sao khoa học tên lửa như vậy?
Bingo. Cảm ơn. Đi qua trong UPDATEDB = "" đã làm các trick. Tôi hiểu tại sao hành động tùy chỉnh của tôi không chạy, nhưng không phải lý do tại sao hộp kiểm vẫn được chọn. Bây giờ tôi hiểu rằng bất cứ điều gì đó không phải là "" có nghĩa là được kiểm tra. – Jeff