내 바로 가기를 시작 메뉴 바로 가기의 기존 폴더에 추가하려고합니다. 내가하려고하면 다음과 같은 오류를 얻을 수Wix 설치 프로그램을 사용하여 시작 메뉴 프로그램의 하위 폴더에 바로 가기 추가
<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>
: 내 .wxs 파일에 다음 코드를
<Directory Id="ProgramMenuFolderApp" Name="App">
<Directory Id="ProgramMenuDir" Name="APP 6.3.0">
예를 들어 All Programs -> AppNameFolder -> AppNameVersionFolder -> AppShortcut
는이를 위해 나는 여분의 라인을 추가 빌드 :
The directory ProgramMenuFolderApp is in the user profile but is not listed in the RemoveFile table
.
그러나 제거 할 때 더 높은 수준의 폴더를 제거하지 않으려는 경우에만 App 6.3.0 폴더와 그 아래를 제거하고 싶습니다.
시작 메뉴의 프로그램 하위 폴더에 바로 가기를 추가하려면 어떻게해야합니까?
좋아요! 나는 light.exe와의 링크가 오류를 보여주고 있었지만 여전히 MSI를 생성하고 있다는 것을 깨닫지 못했습니다. "응용 프로그램"디렉토리는 비어 있지 않으며 동일한 응용 프로그램이지만 다른 버전의 다른 폴더를 갖습니다. – Seth
방금' '을 ProgramMenuDir' 구성 요소에 추가했는데 여전히 오류가 발생합니다. –
Seth
@Seth, 그럼 당신은 여전히 ProgramMenuDir 구성 요소에 RemoveFolder를 추가 한 후 오류가있어, 응? RemoveFolder는 디렉토리와 동일한 레벨이 아니라 제거해야하는 디렉토리 안에 있어야한다고 생각합니다. 또한 두 번째 RemoveFolder에 RegistryValue를 추가 했습니까? –