【发布时间】:2023-03-29 15:53:01
【问题描述】:
我似乎无法让自定义操作生效。我可能做错了。这是我正在尝试做的事情:
我想在我的应用程序安装(Visual Studio 安装程序项目)中运行一个运行可执行文件的自定义操作。可执行文件只是执行一些 system.io 文件复制任务,并且我已经确认该可执行文件在单独运行时可以完美运行。
- 我创建了安装程序项目
- 将 exe 添加到应用程序文件夹中
- 进行自定义操作并将 exe 添加到提交步骤
- InstallerClass 设置为 true
- 运行安装程序,没有得到我希望的结果。所以我添加了一行写入 Windows 日志。再次运行安装程序后查看 Windows 日志,看起来它没有运行。在 exe 代码中添加了 debug.break 取消安装/重新安装了我的安装程序,但什么也没发生。我终于坐下来观看了这些过程,并确认 exe 永远不会被执行。
有什么想法吗?
目标系统:Windows XP、Vista Visual Studio 版本:2008 Sp1 语言:VB.NET 目标框架:2.0
非常好。由于您发布的代码,我想我越来越近了。我将其转换为 VB,但出现此错误:找不到 myexename.savedstate。我想我应该向您发布的潜艇传递一些东西,但我不知道是什么。 (顺便说一下,这是一个控制台应用程序)我添加了对 System.Configuration.Install.dll 的引用,这是我的代码:
导入 System.ComponentModel 导入 System.Configuration.Install _ 公共类ApplicationInstaller 继承安装程序 公共重载覆盖 Sub Commit(ByVal savedState As IDictionary) ' 在提交上做一些工作 The_Sub_I_Want_To_Run() 结束子 公共重载覆盖子安装(ByVal stateSaver As IDictionary) ' 做一些安装工作 结束子 公共重载覆盖子卸载(ByVal savedState As IDictionary) ' 做一些卸载工作 结束子 结束类我没有这么称呼。我以前从未使用过 Installer 类。我可能在这里做一些非常菜鸟的事情。根据您的指示,我已将粘贴在下面的代码添加到我要在安装期间运行的 exe 中。我将 exe 添加到我的应用程序文件夹中,然后将其添加到提交自定义操作中。现在这是我现在尝试运行的 exe 源代码中的代码:
嗯...在 exe 的项目属性中,我单击了“签署程序集”,错误消失了。但是,看起来 exe 没有运行我想要的代码。
【问题讨论】:
-
Visual Studio 部署项目很糟糕,无疑会给您带来问题。改用 WiX。
标签: windows visual-studio visual-studio-2008 windows-installer