2009-11-30 34 views

Trả lời

18

Đây là mẫu mã chúng tôi sử dụng, chúng tôi không thực sự đặt URL tại thời gian biên dịch, nhưng cập nhật các thuộc tính trong bản dựng sau MSI để điều này có vẻ hơi "được thiết kế". Chúng tôi sử dụng CA WiXShellExec và có điều kiện bổ sung để trang web chỉ được hiển thị trong khi gỡ cài đặt và không phải trong quá trình nâng cấp lớn.

<Fragment> 
    <Property Id="MyURL"><![CDATA[http://www.blah.blah.blah/]]></Property> 
    <CustomAction Id="SetOpenURL" Property="WixShellExecTarget" Value="[MyURL]" /> 
    <CustomAction Id="OpenURL" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" Return="ignore" /> 

    <InstallExecuteSequence> 
     <!-- Launch webpage during full uninstall, but not upgrade --> 
     <Custom Action="SetOpenURL" After="InstallFinalize"><![CDATA[REMOVE ~= "ALL" AND NOT UPGRADINGPRODUCTCODE]]></Custom> 
     <Custom Action="OpenURL" After="SetOpenURL"><![CDATA[REMOVE ~= "ALL" AND NOT UPGRADINGPRODUCTCODE]]></Custom> 
    </InstallExecuteSequence> 
</Fragment> 
+0

Làm việc như say mê, cảm ơn! –

+0

Trong khi gỡ cài đặt hoàn toàn, không phải Xóa = "TẤT CẢ"? –

4

Thêm các phần tử XML ở đâu đó dưới phần tử <Product> của bạn:

<CustomAction Id="LaunchBrowser" 
     ExeCommand="explorer.exe http://www.google.com" 
     Directory="INSTALLDIR" 
     Return="asyncNoWait" > 
    REMOVE="ALL" 
    </CustomAction> 

    <InstallExecuteSequence> 
    <Custom Action="LaunchBrowser" After="InstallValidate"/> 
    </InstallExecuteSequence> 

Điều kiện REMOVE="ALL" sẽ đảm bảo rằng các hành động tùy chỉnh được thực hiện chỉ khi sản phẩm đã được loại bỏ hoàn toàn.

After="InstallValidate" đảm bảo rằng hành động tùy chỉnh được thực hiện ngay sau khi giá trị REMOVE property trở nên nổi tiếng.

+1

Giải pháp này thực sự tốt hơn giải pháp được chấp nhận vì nó sẽ hoạt động với 'Nút bấm. Điều duy nhất tôi khuyên là đặt '"' các dấu xung quanh URL. –

+0

Điều này bị thiếu "VÀ NOT UPGRADINGPRODUCTCODE". – seguso

0

Ví dụ được cung cấp bởi FireGiant Launch the Internet không phù hợp với tôi nhưng nó truyền cảm hứng cho tôi để đưa ra giải pháp của riêng tôi như bên dưới.

Điều kiện NOT Installed có nghĩa là cài đặt mới trong khi Cài đặt có nghĩa là nó chỉ kích hoạt khi gỡ cài đặt.

<CustomAction Id="LaunchBrowser" Directory="INSTALLDIR" Return="asyncNoWait" ExeCommand="explorer.exe http://www.google.com/" /> 
<InstallExecuteSequence> 
    <Custom Action="LaunchBrowser" After="InstallFinalize">Installed</Custom> 
</InstallExecuteSequence> 
Các vấn đề liên quan