【问题标题】:Application does not start after running setup with postbuild event使用 postbuild 事件运行安装程序后应用程序未启动
【发布时间】:2018-08-27 13:37:37
【问题描述】:

我使用了这个线程中的脚本:Run exe after msi installation?,分别是这个站点:Mailbag: How can I customize an MSI in the Visual Studio setup/deployment project?

显示完成对话框上的复选框,但我的应用程序在按完成后没有启动。什么都没有发生。

我尝试了不同的线路:

sql = "INSERT INTO `CustomAction` (`Action`, `Type`, `Source`, `Target`) VALUES ('VSDCA_Launch', '210', '" + fileId + "', '')";

sql = "INSERT INTO `CustomAction` (`Action`, `Type`, `Source`, `Target`) VALUES ('VSDCA_Launch', '226', 'TARGETDIR', 'MyProgram.exe')";

任何想法或是否可以调试脚本或编写包含更多信息的日志以找出究竟是什么不起作用?应用程序需要管理员权限。这有关系吗?

【问题讨论】:

    标签: visual-studio windows-installer setup-deployment post-build-event


    【解决方案1】:

    格式化notepad.exe 工作的事实可能意味着您需要一个完整路径(notepad.exe 在系统路径中并且可以 因此在没有路径的情况下调用,其他二进制文件需要完整路径)。

    您是否尝试像 [#MyProgram.exe] 那样执行 [#filekey] 目标字段中的值?引用必须匹配文件表 入口。所以查看文件表第一列 确定文件标识符是什么,并在目标中使用它 字段。

    查看Formatted 的文档。

    WiX?:顺便问一下,是否可以选择迁移到 WiX?不是为了惹恼你,而是为了长期使用there are some major problems with Visual Studio Projects 利用。也许可以快速浏览一下。

    文件表

    快捷方式表


    在下面留下原始答案:


    快速测试:也许先检查一下:What VSDCA_Launch mean in Custom Action script


    日志记录:您是否启用了日志记录以确定发生了什么?请查看the Logging section in this answer 了解快速“操作方法”。

    试运行:我想您可以在其中添加 notepad.exe 而不是您自己的可执行文件,以查看它在管理员时是否启动正常不需要权利。您所需要的只是测试构建和测试运行。

    不完整:我敢打赌,你在后期处理 MSI 时忘记了一些东西。我的猜测是一个简单的格式问题,例如上面链接的帖子所述。

    【讨论】:

    • 记事本的建议很有趣,因为记事本启动时没有任何问题。但是当我将 notepad2.exe 放入目标目录时,它不会启动。显然找不到目录。
    • 我会看看 Wix。比起 InnoSetup,你更喜欢它吗?
    • 当然可以。更适合企业/静默部署 - 只要您保持简单和标准化。包裹有多大?
    • 您的意思是创建的安装文件的文件大小吗?当前为 70 MB。
    • WiX 有点繁琐,但在灵活性方面它具备您所需的一切。除此之外,我倾向于用我的这两个链接来骚扰人们:List of MSI ToolsDeployment Tools。出于某种原因,我的一个相当混乱的答案被赞成在以下主题上:"WiX Quick Start"
    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2012-07-07
    相关资源
    最近更新 更多