WiX를 사용하여 바탕 화면 바로 가기 만들기
그래서 Wix에이 설정 프로젝트가 있고 바탕 화면에 바로 가기를 원했습니다. 이것은 당신이 생각할 수있는 쉬울 것입니다. 그러나 그것은 사실이 아닙니다. 인터넷에서 발견 된 모든 코드 조각이 작동하지 않았습니다. 몇 시간 동안 고군분투하고 문서를 읽은 후 드디어 올바른 결과를 얻었으므로 여기에서 공유하고 있습니다.
바로 가기는 광고되지 않은 것이므로 누군가에게 도움이되기를 바랍니다. 기능 태그에 구성 요소를 넣어야합니다.
<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>
내 방식이 더 쉽다고 생각하며 레지스트리 키를 만들 필요가 없습니다.
<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>
예를 들어 감사합니다. WIX 3.8에서는 "오류 3 ICE43 : 구성 요소 ...에 알려지지 않은 바로 가기가 있습니다. 파일이 아닌 키 경로로 HKCU 아래의 레지스트리 키를 사용해야합니다."
그래서 기능이있는 파일에서 이렇게했습니다.
<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>
그리고 제품 정의가있는 파일에 언급 된 데스크탑 폴더 :
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop" />
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="FARMS" >
</Directory>
</Directory>
</Directory>
</Fragment>
It seems lot easier in this documentation.
First, you have to point your DesktopFolder,
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop"/>
Then you should create Shortcut component for file that you want to create shortcut of.
<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>
It worked for me. I need to put icon but thats easy part. Hope it works.
After too much effort, I used this way:
<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>
참고URL : https://stackoverflow.com/questions/11868499/create-shortcut-to-desktop-using-wix
'Program Tip' 카테고리의 다른 글
`std :: ios_base :: Init :: Init () '에 대한 정의되지 않은 참조 (0) | 2020.11.30 |
---|---|
UIPickerView의 기본값을 설정하는 방법 (0) | 2020.11.30 |
TypeScript : 인터페이스 대 클래스 대 모듈 대 프로그램 대 함수 (0) | 2020.11.30 |
부트 스트랩 클래스의 전체 목록 (0) | 2020.11.30 |
속성 'X'는 비공개이며 'xyzComponent'클래스 내에서만 액세스 할 수 있습니다. (0) | 2020.11.30 |