如何向c#Installer添加一些代码

时间:2013-01-16 15:14:01

标签: c# visual-studio-2010 setup-deployment

我已经制作了一个包含exe和dll的安装程序,使用Visual Studio制作的东西是可以添加一些代码吗?

安装时的例子我只想运行3-4行代码。

1-使用唯一密钥将mac地址添加到数据库。

同样在卸载时从数据库中删除mac地址。

在当前场景中使用默认安装项目是否可以实现?

2 个答案:

答案 0 :(得分:2)

您需要为安装程序使用CustomAction。有了这个,您可以运行程序,脚本,编写注册表项或其他任何东西。 Here's a simple example使用自定义安装程序类在安装过程中显示消息(在VB.NET中但可轻松翻译):

Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
  MyBase.Install(stateSaver)
  Dim myInput As String = Me.Context.Parameters.Item("Message")
  If myInput Is Nothing Then
    myInput = "There was no message specified"
  End If
  MsgBox(myInput)
End Sub

您需要按照链接中的步骤完全重现样本。

答案 1 :(得分:0)

您可以使用.NET installer classes并从默认设置项目中连接它们。您重写某些方法,然后在安装/卸载时调用它们。这是关于如何执行此操作的tutorial

也就是说,许多人完全讨厌这些.NET安装程序类(以及默认的安装程序项目),并使用基于WIX或InstallShield的项目实现真正的自定义操作。

根据您想要做什么以及何时执行,您还会引入.NET依赖项。例如,如果要检查是否正在安装.NET,则如果用户尚未安装.NET,则无法从.NET自定义操作执行此操作。

添加自定义操作有点滑坡。一旦人们意识到您可以自定义安装程序,您可能会被要求做的越来越多。此时,使用更灵活的工具(WIX(开源)或InstallShield($))可能是有意义的。