我似乎无法获得自定义操作。我可能做错了。以下是我想要做的:Visual Studio 2008安装程序项目 - 自定义操作未触发
我想在运行可执行文件的应用程序安装(Visual Studio Installer项目)中运行自定义操作。可执行文件只是执行一些system.io文件拷贝任务,并且我已经证实,可执行文件本身运行时可以完美运行。
- 我创建安装项目
- 添加的EXE的程序文件夹
- 去自定义操作,并且增加了exe文件,以提交步骤
- InstallerClass设置为true
- 冉安装程序,没有得到我期待的结果。所以我添加了一行来写入Windows日志。在再次运行安装程序后查看Windows日志,看起来好像没有运行。添加了一个debug.break exe代码Unisntalled /重新安装我的安装程序并没有发生任何事情。我终于坐下来观看过程,并确认exe永远不会被执行。
有什么想法?
有针对性的系统:Windows XP,Vista中 的Visual Studio版本:2008 SP1 语言:VB.NET 有针对性的框架:2.0
优秀。感谢您发布的代码,我想我会越来越近。我将它转换为VB,我得到这个错误:无法找到myexename.savedstate。我假设我应该向你发布的潜艇传递一些东西,但我不知道是什么。 (顺便说一句,这是一个控制台应用程序),我加入到System.Configuration.Install.dll参考,这里是我的代码:
Imports System.ComponentModel Imports System.Configuration.Install _ Public Class ApplicationInstaller Inherits Installer Public Overloads Overrides Sub Commit(ByVal savedState As IDictionary) ' Do some work on commit The_Sub_I_Want_To_Run() End Sub Public Overloads Overrides Sub Install(ByVal stateSaver As IDictionary) ' Do some work on install End Sub Public Overloads Overrides Sub Uninstall(ByVal savedState As IDictionary) ' Do some work on uninstall End Sub End Class
我没有调用。我从来没有使用过安装程序类。我可能在这里做一些非常新手。根据你的指示,我已经添加了我在安装期间运行的exe文件中粘贴的代码。我将该exe文件添加到我的应用程序文件夹中,然后将其添加到提交自定义操作中。现在,这里是我的代码现在已经在我的exe文件的来源,我试图运行:
_
Public Class ApplicationInstaller
Inherits Installer
Public Overloads Overrides Sub Commit(ByVal savedState As IDictionary)
' Do some work on commit
The_Sub_I_Have_my_codein()
MyBase.Commit(savedState)
End Sub
Public Overloads Overrides Sub Install(ByVal stateSaver As IDictionary)
' Do some work on install
End Sub
Public Overloads Overrides Sub Uninstall(ByVal savedState As IDictionary)
' Do some work on uninstall
End Sub
End Class
嗯...在exe文件的项目属性我点击“登录大会“和错误已经消失。但是,看起来像exe不运行我想要的代码。
Visual Studio部署项目很烂并且无疑会导致您的问题。改用WiX。 – erikkallen 2010-03-29 12:05:37