WiX安装后打开PDF文件,不显示任何错误

可可瓦拉

WiX安装程序完成后,我想打开一个PDF文件。

我目前拥有的相关WiX XML是:

<Property Id="WixShellExecTarget" Value="[#Manual.pdf]" />

<CustomAction Id="ShowManual" 
    Return="ignore" 
    BinaryKey="WixCA"
    DllEntry="WixShellExec" 
    Impersonate="yes" />

<InstallExecuteSequence>
    <Custom Action="ShowManual" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>

在安装了PDF阅读器的计算机上,这一切都可以正常工作。但是,如果没有,Windows会弹出一条消息,提示“ Windows无法打开此类文件”。

有没有什么方法可以让WiX仅在ShellExecute存在与PDF文件关联的应用程序时才尝试调用还是有可能使呼叫无提示地静默失败而不显示任何错误?

可可瓦拉

我通过创建一个“即时”托管自定义操作来解决此问题,该操作在运行之后运行,InstallFinalize并用于FindExecutable在尝试打开应用程序之前检查该应用程序是否与PDF文件相关联:

[DllImport("shell32.dll", EntryPoint = "FindExecutable")]
private static extern long FindExecutable(string lpFile, string lpDirectory, StringBuilder lpResult);

[CustomAction]
public static ActionResult ShowPdf(Session session)
{
    var installDir = session["INSTALLDIR"];
    var pdfPath = Path.Combine(installDir, @"My Dir\My.pdf");

    var pdfReaderPath = new StringBuilder(1024);
    long lngResult = FindExecutable(pdfPath, String.Empty, pdfReaderPath);

    if ((lngResult >= 32) && (!String.IsNullOrWhiteSpace(pdfReaderPath.ToString())))
    {
        Process.Start(pdfPath);
    }

    return ActionResult.Success;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重建后,WiX安装程序不显示卸载对话框

来自分类Dev

安装后不显示ckeditor

来自分类Dev

PHP 不显示错误并且在添加验证后不插入任何错误

来自分类Dev

登录后dwm不显示任何窗口

来自分类Dev

空格或'后不显示任何数据

来自分类Dev

登录后dwm不显示任何窗口

来自分类Dev

Python asyncio不显示任何错误

来自分类Dev

安装 ubuntu 后 GRUB 不显示

来自分类Dev

显示器打开时不显示任何内容

来自分类Dev

在Ubuntu 17.10上使用conda进行软件包安装后,man <命令>不显示任何内容

来自分类Dev

14.04 kate编辑器不显示任何插件(即使重新安装后配置权限也不正确)

来自分类Dev

清除后,TextInputLayout不显示错误消息

来自分类Dev

Wix-从安装目录安装后如何运行exe文件?

来自分类Dev

打开jar文件后的脚本之后不会执行代码,也不会引发任何错误

来自分类Dev

RecyclerView不显示任何内容,也没有显示错误

来自分类Dev

RecyclerView不显示任何内容,也没有显示错误

来自分类Dev

不显示任何分区来安装 Ubuntu 19

来自分类Dev

WiX安装程序无法打开配置文件

来自分类Dev

WiX安装程序无法打开配置文件

来自分类Dev

闪烁后,收藏夹视图不显示任何项目

来自分类Dev

CSS动画结束后不显示任何内容

来自分类Dev

转换后的JSON在listView中不显示任何内容

来自分类Dev

ClickOnce 应用程序启动后不显示任何内容

来自分类Dev

jQuery模式关闭和打开后不显示名称

来自分类Dev

Codeigniter不显示文件上传错误

来自分类Dev

Android意图打开文件不显示文件

来自分类Dev

Wix 最小 UI 不显示

来自分类Dev

不显示任何动画

来自分类Dev

Emacs clojure repl不显示任何错误或异常

Related 相关文章

热门标签

归档