Vì vậy, tôi có dự án thiết lập này trong Wix và muốn có lối tắt trên màn hình. Điều này phải dễ dàng bạn có thể nghĩ. Nhưng đó không phải là trường hợp. Tất cả các đoạn mã được tìm thấy trên Internet không hoạt động. Sau một vài giờ gặp khó khăn và đọc tài liệu, cuối cùng tôi đã nhận được nó, vì vậy tôi đang chia sẻ nó với bạn ở đây.Tạo lối tắt tới máy tính để bàn bằng cách sử dụng WiX
Trả lời
Phím tắt là một phím tắt không được quảng cáo, hy vọng điều này sẽ giúp ai đó. Hãy nhớ đặt thành phần vào thẻ tính năng của bạn.
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationShortcutDesktop" Guid="*">
<Shortcut Id="ApplicationDesktopShortcut"
Name="Text under your icon"
Description="Comment field in your shortcut"
Target="[MYAPPDIRPROPERTY]MyApp.exe"
WorkingDirectory="MYAPPDIRPROPERTY"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue
Root="HKCU"
Key="Software/MyAppName"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</Directory>
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="MyCompany" Name="MyCompany">
<Directory Id="MYAPPDIRPROPERTY" Name="MyAppName">
<!-- main installation files -->
</Directory>
</Directory>
</Directory>
</Directory>
Bạn cần các dấu gạch chéo ngược trên Khóa đăng ký –
Không đăng GUID được mã hóa cứng. Đặt 'Guid =" * "' thay thế cho Tự động tạo guid hoặc sử dụng {PUT-GUID-HERE} –
giá trị đăng ký cho là gì? – BatteryBackupUnit
Tôi nghĩ theo cách của tôi là dễ dàng hơn, không cần cho bạn để tạo ra một khóa registry:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" SourceName="Desktop" />
<Directory Id="MergeRedirectFolder">
<Component Id="MyExeComponent" Guid="{PUT-GUID-HERE}">
<File Id="MyExeFile" Source="$(var.ExeSourcePath)" KeyPath="yes">
<Shortcut
Id="DesktopShortcut"
Directory="DesktopFolder"
Name="$(var.ShortcutName)"
WorkingDirectory="MergeRedirectFolder" />
</File>
</Component>
</Directory>
</Directory>
Từ [documentation] (http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/create_start_menu_shortcut.html) liên quan đến key registry: _ "Điều này được yêu cầu như một Shortcut không thể phục vụ như KeyPath cho một thành phần khi cài đặt các phím tắt không được quảng cáo cho người dùng hiện tại." _ – blins
chính thành phần tệp là đường phím, phím tắt "kế thừa" các thuộc tính tệp. Bằng cách này có thể hơi khó hiểu một chút khi bạn cố gắng theo dõi lối tắt trên màn hình trong nhiều tệp.sở thích của người dùng là nhỏ gọn so với truy xuất nguồn gốc mà tôi nghĩ? –
Nhờ ví dụ. Trong WIX 3.8 nó vẫn tăng: "Lỗi 3 ICE43: Thành phần ... có các phím tắt không được quảng cáo. Nó nên sử dụng khóa đăng ký dưới HKCU làm Khóa chính, không phải tệp."
Vì vậy, tôi đã làm theo cách như vậy điều này trong một tập tin với các tính năng:
<Component Id="cmp79F6D61F01DD1060F418A05609A6DA70"
Directory="dirBin" Guid="*">
<File Id="fil34B100315EFE9D878B5C2227CD1454E1" KeyPath="yes"
Source="$(var.SourceDir)\FARMS.exe" >
<Shortcut Id="DesktopShortcut"
Directory="DesktopFolder"
Name="FARMS $(var.FarmsVersion)"
Description="Local Land Services desktop application"
WorkingDirectory="INSTALLFOLDER"
Icon="FARMS.exe"
IconIndex="0"
Advertise="yes" >
<Icon Id="FARMS.exe" SourceFile="$(var.SourceDir)\FARMS.exe" />
</Shortcut>
</File>
</Component>
Và đề cập thư mục máy tính để bàn trong một tập tin với định nghĩa sản phẩm:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop" />
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="FARMS" >
</Directory>
</Directory>
</Directory>
</Fragment>
Có vẻ như dễ dàng hơn rất nhiều trong documentation này.
Trước tiên, bạn phải chỉ DesktopFolder của bạn,
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop"/>
Sau đó, bạn nên tạo thành phần Shortcut cho tập tin mà bạn muốn tạo shortcut của.
<Component Id="PutYourComponentIdHere" Directory="FileDirectory" Guid="*">
<File Id="NotYourComponentId" KeyPath="yes" Source="..\YourFileSource\YourExecutable.exe">
<Shortcut Id="desktopServer" Directory="DesktopFolder" Name="YourShourtcutName" WorkingDirectory='WhereShouldYourShortcutPoint' Advertise="yes"/>
</File>
</Component>
Nó làm việc cho tôi. Tôi cần phải đặt biểu tượng nhưng đó là một phần dễ dàng. Hy vọng nó hoạt động.
Sau quá nhiều nỗ lực, tôi đã sử dụng theo cách này:
<Product ...>
<Feature Id="ProductFeature" Title="SetupProject" Level="1">
...
...
<ComponentRef Id="cmpDesktopShortcut" />
</Feature>
<Component Id="cmpDesktopShortcut" Guid="PUT-GUID-HERE" Directory="DesktopFolder" >
<Shortcut Id="MyDesktopShortcut"
Name="Setup Project"
Description="Opens the program."
Directory="DesktopFolder"
Target="[INSTALLFOLDER]App.exe"
WorkingDirectory="INSTALLFOLDER"/>
<RegistryValue Root="HKCU" Key="Software\My Company\Sample Application" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</Product>
đây là cách tôi cảm thấy có rất nhiều "công nghệ" microsoft những ngày này. Nhận xét này đến gần ba năm sau đó. rõ ràng trạng thái của nghệ thuật chưa được cải thiện. –