Tôi đang cố gắng thêm lối tắt chương trình của mình vào một thư mục hiện có trong các phím tắt của menu bắt đầu. Ví dụ All Programs -> AppNameFolder -> AppNameVersionFolder -> AppShortcut
Sử dụng trình cài đặt Wix để thêm lối tắt vào thư mục con trong các chương trình startmenu
Để đạt được điều này tôi đã thêm các dòng thêm:
<Directory Id="ProgramMenuFolderApp" Name="App">
<Directory Id="ProgramMenuDir" Name="APP 6.3.0">
để đoạn mã sau vào .wxs tập tin của tôi:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="Program Files">
<Directory Id="CompanyName" Name="CompanyName">
<Directory Id="App" Name="App">
<Directory Id="INSTALLDIR" Name="App 6.3.0">
<Component Id="MainExecutable" Guid="23FFE6FD-2BEA-4946-9875-8DBEEA5AAF55">
<File Id="AppEXE" Name="App.exe" Source="App.exe" KeyPath="yes">
<Shortcut Id="startmenu" Directory="ProgramMenuDir" Name="App 6.3.0" WorkingDirectory='INSTALLDIR' Icon="App.exe" IconIndex="0" Advertise="yes" />
<Shortcut Id="desktopApp" Directory="DesktopFolder" Name="App 6.3.0" WorkingDirectory='INSTALLDIR' Icon="App.exe" IconIndex="0" Advertise="yes" />
</File>
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuFolderApp" Name="App">
<Directory Id="ProgramMenuDir" Name="App6.3.0">
<Component Id="ProgramMenuDir" Guid="BF266F76-192A-493E-B5C7-C54660E61D7D">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\CompanyName\App6.3.0" Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
</Directory>
tôi nhận được lỗi sau khi tôi cố gắng và xây dựng:
The directory ProgramMenuFolderApp is in the user profile but is not listed in the RemoveFile table
.
Tuy nhiên, tôi không muốn xóa thư mục cấp cao hơn khi tôi gỡ cài đặt, tôi chỉ muốn xóa thư mục Ứng dụng 6.3.0 trở xuống.
Làm cách nào để thêm lối tắt vào thư mục con của chương trình trong menu bắt đầu?
Tuyệt vời! Tôi đã không nhận ra rằng mặc dù các liên kết với light.exe đã được hiển thị một lỗi nó vẫn còn tạo ra một MSI. Thư mục "Ứng dụng" sẽ không trống, nó sẽ có các thư mục khác cho cùng một ứng dụng nhưng các phiên bản khác nhau. – Seth
Tôi vừa thêm ' ' vào thành phần 'ProgramMenuDir' và tôi vẫn gặp lỗi. –
Seth
@Seth, Vì vậy, bạn vẫn gặp lỗi sau khi thêm RemoveFolder vào thành phần ProgramMenuDir, huh? Tôi nghĩ rằng RemoveFolder nên ở bên trong thư mục mà nó loại bỏ, không phải ở cùng mức với nó. Ngoài ra, bạn đã thêm một RegistryValue cho RemoveFolder thứ hai? –