我想将文件发送到目标文件夹并创建桌面文件夹的快捷方式。我的wix编码是 在这里输入代码
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="5A157ECF-D387-43EF-855E-C39E9F26B463" Name="DesktopPermission" Language="1033" Version="1.0.0.0" Manufacturer="Naveen" UpgradeCode="5A157ECF-D387-43EF-855E-C39E9F26B463">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="DesktopPermission" Level="1">
<ComponentRef Id="compid"/>
</Feature>
<DirectoryRef Id="APP_DIR">
<Component Id="compid" Guid="F2450B59-EA82-4762-8AEF-984D54F6EAA9">
<File Id="BuildFile" KeyPath="yes" Source="C:\Users\naveen.raja\Desktop\Text.txt"/>
</Component>
</DirectoryRef>
<CustomAction Id="sample" Directory="APP_DIR" Value="C:\Users\naveen.raja\Desktop\Installone" Execute="immediate" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="APP_DIR" Name="myfile">
</Directory>
</Directory>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationShortcutDesktop" Guid="258B1044-131B-49F7-90CB-CC92C8658191">
<Shortcut Id="ApplicationDesktopShortcut"
Name="Text under your icon"
Description="Comment field in your shortcut"
Target="[APP_DIR]"
WorkingDirectory="APP_DIR"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue
Root="HKCU"
Key="Software/MyAppName"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</Directory>
</Directory>
</Product>
<Fragment>
<InstallExecuteSequence>
<Custom Action="sample" Sequence="600" />
</InstallExecuteSequence>
</Fragment>
</Wix>
但是文件没有发货,也没有创建快捷方式。所以请帮助解释这个编码中要改变的一切。提前谢谢。
答案 0 :(得分:1)
通常,如果您提供安装的详细日志,则可以更轻松地查看确切的错误。如果没有该日志,我只能使用您的代码。
我提供的代码没有为我编译(我使用的是v3.9),并且表单中还有其他错误可能会阻止安装程序按预期运行。我发现的错误有以下几种类型:
1:从未包含设置APP_DIR位置的自定义操作,因为调度它的片段从未被引用过。这将导致文件安装到C:\ myfile \ Text.txt(替换C:与计算机上具有最大可用空间的驱动器),而不是按照您的意图在桌面下。 (愿你的文件在那里吗?)
2:代码因ICE21失败,因为ApplicationShortcutDesktop未包含在任何功能中(可能是您的快捷方式没有出现的原因)。
3:代码因为重复而无法编译。
4:代码ICE 12失败,因为您的自定义操作“sample”的类型为:35。因此,它必须在Seq Table中的CostFinalize @ 1000之后:InstallExecuteSequence。
附注:通常,ProductCode(Product \ @Id)和UpgradeCode(Product \ @Upgrade)的值不同。您可能希望在Windows Installer / MSI中了解有关这两个值的更多信息。 wix toolset's wix-users list在这个领域有很多专家。事实上,通过搜索列表档案和/或在那里提问来找到很多帮助。
修复这四个错误,文件的文件夹和文件夹的快捷方式都显示在指定的桌面上,并且文件被添加到该文件夹中。
以下是我的代码的版本(最小变化):
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="5A157ECF-D387-43EF-855E-C39E9F26B463" Name="DesktopPermission" Language="1033" Version="1.0.0.0" Manufacturer="Naveen" UpgradeCode="5A157ECF-D387-43EF-855E-C39E9F26B463">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="DesktopPermission" Level="1">
<ComponentRef Id="compid"/>
<ComponentRef Id="ApplicationShortcutDesktop"/>
</Feature>
<DirectoryRef Id="APP_DIR">
<Component Id="compid" Guid="F2450B59-EA82-4762-8AEF-984D54F6EAA9">
<File Id="BuildFile" KeyPath="yes" Source="C:\Users\naveen.raja\Desktop\Text.txt"/>
</Component>
</DirectoryRef>
<CustomAction Id="sample" Directory="APP_DIR" Value="C:\Users\naveen.raja\Desktop\Installone" Execute="immediate" />
<InstallExecuteSequence>
<Custom Action="sample" After="CostFinalize" />
</InstallExecuteSequence>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="APP_DIR" Name="myfile">
</Directory>
</Directory>
<DirectoryRef Id="TARGETDIR">
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationShortcutDesktop" Guid="258B1044-131B-49F7-90CB-CC92C8658191">
<Shortcut Id="ApplicationDesktopShortcut"
Name="Text under your icon"
Description="Comment field in your shortcut"
Target="[APP_DIR]"
WorkingDirectory="APP_DIR"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue
Root="HKCU"
Key="Software/MyAppName"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</Directory>
</DirectoryRef>
</Product>
</Wix>
希望有所帮助!