私はC#アプリケーションを開発中です。私はインストーラWixを持っていて、自分のアプリケーションのためのショートカットを作成したい。いくつかの調査の後、私はデスクトップとスタートメニューのショートカットを作成するコードを発見した。レジスタは、インストールキーをHKCU \ SOFTWARE \ MyCompagny \製品で作成された後Wixショートカットを作成できません
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="$(var.compagny)"/>
</Directory>
<Directory Id="DesktopFolder" SourceName="Desktop"/>
</Directory>
<!-- Shortcuts -->
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="*">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="$(var.product)"
Description="$(var.product) application"
Target="MyApplication.exe"
WorkingDirectory="INSTALLFOLDER"/>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
<RegistryKey Root="HKCU" Key="SOFTWARE\$(var.compagny)\$(var.product)">
<RegistryValue Name="installed" Type="integer" Value="1" KeyPath="yes" />
</RegistryKey>
</Component>
</DirectoryRef>
<DirectoryRef Id="DesktopFolder">
<Component Id="ApplicationShortcutDesk" Guid="*">
<Shortcut Id="ApplicationStartDeskShortcut"
Name="$(var.product)"
Description="$(var.product) application"
Target="MyApplication.exe"
WorkingDirectory="INSTALLFOLDER"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryKey Root="HKCU" Key="SOFTWARE\$(var.compagny)\$(var.product)">
<RegistryValue Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</RegistryKey>
</Component>
</DirectoryRef>
<Feature Id="ProductFeature" Title="$(var.product)" Level="1">
<ComponentRef Id="ApplicationShortcut"/>
<ComponentRef Id="ApplicationShortcutDesk"/>
</Feature>
:
は私のコードがあります。しかし、ショートカットはありません。
私は何を欠席しましたか?
編集:
ログがあります
MSI(S)(5C:B8)[14:51:31:801]:実行OP:ActionStart(NAME = CreateShortcuts、説明=ショートカットの作成、テンプレート=ショートカット:[1])
アクション14:51:31:CreateShortcuts。作成ショートカット
MSI(S)(5C:B8)[14:51:31:802]:実行OP:IconCreate(アイコン= icone.ico、データ= BinaryData)
CreateShortcuts:ショートカット:イコーン。 ICO
MSI(S)(5C:B8)[14:51:31:808]:OP実行:SetTargetFolderを(フォルダ= 23 \ MyCompagny)
MSI(S)(5C:B8)[14 :51:31:810]:SHELL32 :: SHGetFolderPathが返されました。C:\ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs
MSI(5C:B8)[14:51:31:810]実行中OP:SetTargetFolder(フォルダ= 25)
MSI(S)(5C:B8)[14:51:31:812]:SHELL32 :: SHGetFolderPathが返さ:C:\ユーザー\パブリック\デスクトップ
MSI実行中:ActionStart(Name = WriteRegistryValues、Description =システムレジストリ値の記述、Template = Key:[1]、Name:[2]、Value: [3])
アクション14:51:31:WriteRegistryValues。書き込みシステムレジストリ値
MSI(S)(5C:B8)[14:51:31:812]:実行OP:ProgressTotal(合計= 2、タイプ= 1、ByteEquivalent = 13200)
MSI( S)(5C:B8)[14:51:31:813]:実行OP:RegOpenKey(ルート= -2147483647、キー= SOFTWARE \ MyCompagny \ MyApplicationを,, BinaryType = 0 ,,)
MSI(S) (名前=インストール済み、値=#1)
WriteRegistryValues:キー:¥SOFTWARE¥MyCompagny¥MyApplication、Name:installed、Value(5C:B8)[14:51:31:813] :#1
MSI(S)(5C:B8)[14:51:31:813]:実行OP:RegAddValue(NAME =インストールされ、値=#1)
WriteRegistryValuesキー:\ SOFTWARE \ MyCompagny \ MyApplicationを名前:インストールされ、値:#1
Guidに問題がありますか? (私はそれがどのように動作するのかわかりません) –