Tôi cần chạy tệp thi hành để thiết lập/rách tùy chỉnh, sau khi cài đặt và trước khi gỡ cài đặt. Nó cần chạy với các đặc quyền nâng cao. Làm thế nào để làm điều này một cách chính xác?Làm thế nào để chạy tùy chỉnh thực thi với đặc quyền nâng cao?
Trả lời
Vì vậy, giải pháp cuối cùng là như này:
<CustomAction Id="Install" Directory="APPLICATIONROOTDIRECTORY"
Execute="deferred" Impersonate="no" Return="ignore"
ExeCommand="[APPLICATIONROOTDIRECTORY]MyExeName.exe -install" />
<CustomAction Id="Uninstall" Directory="APPLICATIONROOTDIRECTORY"
Execute="deferred" Impersonate="no" Return="ignore"
ExeCommand="[APPLICATIONROOTDIRECTORY]MyExeName.exe -uninstall" />
<InstallExecuteSequence>
<Custom Action='Install' After='InstallFiles' >
$ProductComponent = 3
</Custom>
<Custom Action='Uninstall' After='InstallInitialize' >
?ProductComponent = 3
</Custom>
</InstallExecuteSequence>
Bất kỳ lời khuyên nào để cải thiện nó?
Có một cái nhìn tại blog này tại phần Làm thế nào để tác giả hành động đòi hỏi đặc quyền quản trị
Một link khác mà thực sự giải thích tất cả các loại hành động tùy chỉnh tùy chỉnh. Phần tử CustomAction trong Wix.
Điều này sẽ giúp bạn nhiều hơn một chút.
Sau khi xem xét giải pháp của bạn, bạn dường như đang làm một CustomAction Loại 18, ở đây tôi dán nội dung của Blog trước đối với những loại:
Tuỳ chỉnh Action Loại 18 kêu gọi một thực thi được cài đặt với ứng dụng trong phiên hiện tại. Cột Nguồn trong bảng CustomAction chứa khóa để ghi trong bảng Tệp.
Cột Mục tiêu trong bảng CustomAction chứa chuỗi dòng lệnh cho tệp thực thi. Tất cả tùy chọn xử lý trả lại, lập lịch thực thi và tùy chọn thực thi trong tập lệnh đều được áp dụng.
Bởi vì tập tin được cài đặt với các ứng dụng, có trình tự hạn chế đối với tùy chỉnh Loại hành động 18:
If the source file is not already installed on the computer:
Custom action must be sequenced after CostFinalize action because only after this action path to the file can be resolved.
If the source file is not already installed on the computer:
Deferred custom actions of this type must be sequenced after the InstallFiles action.
Non-deferred custom actions of this type must be sequenced after the InstallFinalize action.
Entry điểm để hành động tùy chỉnh nhận được xử lý với phiên cài đặt. Trong quá trình thực hiện hành động tùy chỉnh hoãn lại, phiên có thể không còn tồn tại. Để có được giá trị của các thuộc tính sử dụng thuộc tính CustomActionData.
Sau đây là cách để thêm Loại 18 hành động tùy chỉnh trong Wix:
<Directory Id="TARGETDIR" Name="SourceDir">
<Component Id="Component1"
Guid="*">
<File Id="MyCA" Name="MyCA.exe" />
</Component>
</Directory>
<CustomAction Id="DoSomething"
FileKey="MyCA"
ExeCommand="-switch"
Execute="deferred"
Return="check"
HideTarget="no"
Impersonate="no" />
<InstallExecuteSequence>
<Custom Action="DoSomething" Before="InstallFinalize" />
</InstallExecuteSequence>
Đầu tiên, chúng ta thêm MyCA.exe vào bảng Tệp.
Chúng tôi cũng thêm hành động tùy chỉnh của Loại 18 vào bảng Hành động tùy chỉnh. Thuộc tính FileKey trỏ đến phần tử có dll hành động tùy chỉnh. Thuộc tính ExeCommand chỉ định chuỗi dòng lệnh cho tệp thực thi.
Điều cuối cùng cần làm là lập lịch hành động tùy chỉnh của chúng tôi trong tất cả các bảng thứ tự bắt buộc.
Điều này sẽ giúp bạn ra ngoài, sắp xếp những gì là mất tích, nhưng tôi đề nghị rằng bạn xem xét tất cả các loại hành động tùy chỉnh sẽ giúp bạn sau này khi thực hiện nhiều hơn các trình cài đặt
này là không đủ để làm cho nó làm việc. Cần cài đặt hành động tùy chỉnh vào đúng trình tự và sử dụng các điều kiện phù hợp để xử lý kịch bản nâng cấp, sửa chữa, v.v. ( – user626528
Nhưng điều này trả lời cho câu hỏi của bạn). để phát triển ý tưởng hơn nữa để xây dựng những gì bạn cần –
@Yan Sklyarenko, điều đó không phải là 10% câu trả lời thực sự – user626528
Bạn có thể thêm 'KHÔNG XÓA' để cài đặt & Trình tự sửa chữa. Và 'Cài đặt VÀ (XÓA = "TẤT CẢ")' chỉ cho chuỗi UnInstall.
<InstallExecuteSequence>
<Custom Action='Install' After='InstallFiles' >
NOT REMOVE
</Custom>
<Custom Action='Uninstall' After='InstallFiles' >
Installed AND (REMOVE = "ALL")
</Custom>
</InstallExecuteSequence>
Hy vọng điều này sẽ giúp ích cho một ai đó đang gặp khó khăn với Wix Tool Set Tags: CustomAction, InstallExecuteSequence, Chạy exe sau Wix Cài đặt hoàn tất, Binary hoặc Resource file trong Wix
Mặc dù, không thể tìm thấy như thế nào được thực hiện từ bootstrapper
file Name: Product.wxs
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="TestingQtExec" Language="1033" Version="1.0.0.0"
Manufacturer="My Company" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MediaTemplate EmbedCab="yes" />
<Feature Id="ProductFeature" Title="TestingQtExec" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
<Binary Id="WixCA1"
SourceFile="FTDI.exe"/>
<!-- install plugin -->
<CustomAction Id="FTDIInstall"
BinaryKey ="WixCA1"
ExeCommand="/passive"
Execute="commit"
Return="asyncNoWait"
HideTarget="no"
Impersonate="no" />
<InstallExecuteSequence>
<Custom Action="FTDIInstall" Before="InstallFinalize" />
</InstallExecuteSequence>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="TestingQtExec" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="cmpSampleTXT" Guid="*">
<File Source="Sample.txt" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Bạn có thể giải thích cách trả lời câu hỏi áp phích gốc này không? – Kmeixner
- 1. Có DefaultAppPool chạy với đặc quyền nâng cao đặc biệt trên IIS?
- 2. Làm thế nào để bạn de-nâng cao đặc quyền cho một quá trình con
- 3. Đặc quyền nâng cao không hoạt động với UseShellExecute = false
- 4. Đặc quyền quy trình nâng cao có lập trình?
- 5. Chạy tập tin thực thi với các đặc quyền quản trị trên mac
- 6. Làm thế nào để nâng cao sự kiện tùy chỉnh từ một lớp tĩnh
- 7. Làm cách nào để cài đặt với các quyền nâng cao bằng trình cài đặt WiX?
- 8. Làm thế nào để từ xa thực thi một kịch bản từ xa cao trong PowerShell
- 9. Màu tùy chỉnh cú pháp tùy chỉnh nâng cao cho Aptana Studio 3 (.less)
- 10. Lắp ráp với quyền tùy chỉnh
- 11. Nâng cao quyền sử dụng mach_inject
- 12. Làm thế nào để lệnh easy_install thực thi các lệnh tùy chỉnh trong setup.py?
- 13. Làm thế nào để thực thi tệp DLL hành động tùy chỉnh WiX với các phụ thuộc
- 14. Làm thế nào để cấp phát bộ nhớ với quyền thực thi?
- 15. Tôi có thể ngừng thực thi yêu cầu nâng cao UAC không?
- 16. Thực thi một hành động tùy chỉnh mà đòi hỏi cao sau khi cài đặt
- 17. Làm thế nào để thực hiện thao tác tập tin/thư mục với các đặc quyền của người dùng?
- 18. Xác thực ứng dụng GTK để chạy với quyền root
- 19. Kịch bản nâng cao Powershell
- 20. Linux tùy chỉnh thực thi trên toàn cầu có sẵn
- 21. Làm thế nào để phát ra và thực thi mã Java bytecode khi chạy?
- 22. chmod: Làm thế nào để đệ quy thêm quyền thực thi duy nhất để các tập tin mà đã có quyền thực thi
- 23. Làm thế nào để giữ quyền thực thi trên các tệp trong một nguyên mẫu maven
- 24. Làm thế nào để tùy chỉnh MPVolumeView?
- 25. Maven - thêm giai đoạn tùy chỉnh để thực thi plugin với cấu hình khác
- 26. Tôi có thể chạy Node.JS với đặc quyền thấp không?
- 27. Làm cách nào để thực thi một ứng dụng mà không có độ cao?
- 28. tableXem chiều cao ô ... làm thế nào để tùy chỉnh nó?
- 29. Làm thế nào để chạy sql tùy ý với mybatis?
- 30. Tôi đang tìm kiếm các tài nguyên nâng cao về tùy chỉnh mẫu soạn thảo MVC3
ProductComponent là gì? –