2013-04-25 65 views
3

我们希望在安装结束时打开记事本文件。因此,我复制了一个readme.txt并在安装过程中置于某个本地驱动器下,然后尝试从该位置打开。但是,它给“系统找不到指定的路径”问题。但是,当我将本地硬编码路径像“d:\ readme.txt”一样给出时,它正在工作。在安装结束时打开readme.txt在WiX中失败

<Directory Id='ProgramFilesFolder' Name='PFiles'> 
    <Directory Id='INSTALLDIR' Name='SimpleMvvmToolkit_2012'>   
    </Directory> 
</Directory> 


<Property Id='NOTEPAD'>Notepad.exe</Property> 
<CustomAction Id='LaunchFile' Property='NOTEPAD' ExeCommand='[INSTALLDIR]Readme.txt' 
       Return='asyncNoWait' /> 

<InstallExecuteSequence> 
    <Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom> 
</InstallExecuteSequence> 

某处我做错了,但我找不到确切的。

回答

7

在WiX SDK中有一个名为How To: Run the Installed Application After Setup的主题,如果您只是想这样做,可以用它来启动readme.txt

如果你真的不想要那种用户体验,我会推荐使用WixShellExec自定义动作来启动readme.txt而不是尝试启动Notepad.exe。这样readme.txt将在用户的默认.txt编辑器中打开。你可以这样做:

<Property Id="WixShellExecTarget" Value="[#FileIdForReadMe.txt]" /> 
<CustomAction Id="LaunchFile" 
    BinaryKey="WixCA" 
    DllEntry="WixShellExec" 
    Impersonate="yes" /> 

<InstallExecuteSequence> 
    <Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom> 
</InstallExecuteSequence> 
+1

感谢抢劫。您的答案对我的安装程序活动有很大的帮助。我会在您的指导下完成。 WiX实际上是创建安装程序的绝妙而强大的工具。做得好...!! – Smaug 2013-04-25 08:43:23

+0

这个应用程序在点击完成之前启动应用程序FYI。 – 2014-11-21 23:15:23

+0

此自定义操作是否执行任何版本检查?我试过这个解决方案,但它只适用于安装的文件是msi中的相同文件 - 我做错了什么?背景:要执行的exe是一个共享组件,所以exe可以更新,然后安装产品。 – BudBrot 2015-07-07 14:25:00