如何在我们的桌面文件夹中发送文件以及如何创建桌面文件夹的快捷方式?

时间:2015-09-04 04:16:17

标签: wix

我想将文件发送到目标文件夹并创建桌面文件夹的快捷方式。我的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>

但是文件没有发货,也没有创建快捷方式。所以请帮助解释这个编码中要改变的一切。提前谢谢。

1 个答案:

答案 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>

希望有所帮助!