如何在Users Desktop文件夹上创建快捷方式

根据craigster更新了完整的Wix项目

                             <!--     -->    <!--  -->  <!--  --> <!--    -->                           <!--  -->    <!--  --> <!--  -->          <!--  -->      <!---->    

按照克雷格斯特的指示,它为第31行提供警告

   

第41行的警告说

 Show Details Severity Code Description Project File Line Error The Wix element contains an unexpected child element 'SetDirectory'. Product.wxs 41 Warning The element 'Wix' in namespace 'http://schemas.microsoft.com/wix/2006/wi' has invalid child element 'SetDirectory' in namespace 'http://schemas.microsoft.com/wix/2006/wi'. List of possible elements expected: 'Fragment' in namespace 'http://schemas.microsoft.com/wix/2006/wi'. Product.wxs 41 

请告诉我我需要对我的WIX做什么才能在H:\ Desktop上创建一个快捷方式

我还需要删除什么,因为它是不必要的/冗余的。

我自己也遇到了麻烦。 这是一个有效的项目模板:

                                                          

你可以看到我尝试了很多东西,我没有花时间把它缩小。 我相信这些线是关键:

    

虽然,我没有排除这些界限:

     

无论如何,这是certificate它有效:

在此处输入图像描述

以下是安装项目目录中的文件:

在此处输入图像描述

这是解决方案的样子:

在此处输入图像描述

^^注意:我引用了C:\ Program Files \ WiX Toolset v3.8 \ bin \ WixUIExtension.dll,并且我包含了MyWixUI_Minimal.wxs文件。

以下是安装项目供您下载并确认其有效:

http://tempsend.com/09604C06D6

这有点像这个问题

Wix工具集:在根磁盘(系统磁盘或c:\)中创建目录并在其中复制文件

这是我的完整wxs文件

                                                           

此外,您还需要将这三个部分添加到您的wxs文件中。 不要忘记function部分

将其添加到function部分

    

将其添加到您的目录部分

    

还要添加此CompenentGroup

         

您的文件应如下所示

                                                                                       

您不应自己为DesktopFolder分配值。 事实上我很惊讶你甚至能够。 DesktopFolder属性由Windows安装程序本身在FileCosting期间设置(安装期间的标准操作)。

由于每个用户和每个计算机的安装 (安装上下文)由ALLUSERS属性的值控制的特殊概念,此属性的路径可以指向用户的桌面文件夹或所有用户的桌面文件夹的路径夹:

  • C:\ Users \用户名\桌面
  • C:\用户\公用\桌面

这个相当无用的概念(安装环境)会引起很多混乱。 一致意见似乎是最好为每台机器安装设置ALLUSERS = 1 。 它们更容易管理。 每个用户安装允许为不同用户重复安装相同设置的令人难以置信的概念,从而进行升级清理卸载修补 。 还有很多其他问题,这里有一篇关于这个主题的文章(这是一个很好的阅读): http : //www.indigorose.com/webhelp/sufwi/Concepts/Per-Machine_vs._Per-User_Installations.htm


如果我可以访问我的脚本存储库,我会为您提供一个真实的示例,但我现在不会。 相反,请尝试这个众所周知的Wix教程 (底部): http : //wix.tramontana.co.hu/tutorial/net-and-net/launch-the-internet

这里只是教程内联的代码:

   

以下是另外两个样本:


如果你想通过VBScript创建文件夹,这是一个简单的例子:

 ' Add a shortcut on the users desktop Const DESKTOPFOLDER= 16 Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(DESKTOPFOLDER) Set objFolderItem = objFolder.Self Set objShell = WScript.CreateObject("WScript.Shell") strDesktopFld = objFolderItem.Path Set objURLShortcut = objShell.CreateShortcut(strDesktopFld & "\MSDN.url") objURLShortcut.TargetPath = "http://msdn.microsoft.com" objURLShortcut.Save 

请注意,您需要添加脚本以在卸载时删除此类快捷方式。 要清理桌面上的所有用户,您需要使用ActiveSetup (也可以在ActiveSetup上阅读此文章 )并注册清理作业,因为清理会在下次登录时发生。 这可能是一个巨大的麻烦,因为它们可以重新安装(相同或新版本),然后您需要取消任何待处理的每用户清理操作。


为了记录,这可以节省时间,您还可以通过依赖许多项目的默认属性值来大大简化您的Wix XML。 在这篇文章中查看更多详细信息: WIX中的guids语法?

快速样品。 这就足够了:

    

而不是