Windows服务设置项目自定义对话框 - 如何获取变量?

时间:2012-09-27 13:38:56

标签: vb.net visual-studio-2010 windows-services installer setup-project

关于Windows服务的快速问题,我已经为我的Windows服务添加了一个安装项目,并且我添加了一个自定义对话框,有4个文本字段,但我的问题是如何获取这些信息/变量?< / p>

我也为Windows服务添加了一个安装程序,然后是安装项目,添加了自定义对话框。

信息类似于数据库连接字符串,等等 - 所以只是字符串值。

这是我的“项目安装程序”代码。如果你想看到它,我已经为windows serive添加了安装程序项目。

    Imports System
Imports System.ComponentModel
Imports System.Configuration.Install
Imports System.ServiceProcess
Imports System.Runtime.InteropServices



Public Class ProjectInstaller

    Public Sub New()
        MyBase.New()

        'This call is required by the Component Designer.
        InitializeComponent()

        My.Settings.TestSetting = Context.Parameters.Item("PathValue")

#If DEBUG Then

        Dim ServicesToRun As ServiceBase()
        ServicesToRun = New ServiceBase() {New tdsCheckService()}
        ServiceBase.Run(ServicesToRun)

#Else

        Dim listener As New tdsCheckService()
        listener.Start()

#End If

    End Sub

    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        MyBase.Install(stateSaver)
        Dim regsrv As New RegistrationServices
        regsrv.RegisterAssembly(MyBase.GetType().Assembly, AssemblyRegistrationFlags.SetCodeBase)
    End Sub
    Public Overrides Sub Uninstall(ByVal savedState As System.Collections.IDictionary)
        MyBase.Uninstall(savedState)
        Dim regsrv As New RegistrationServices
        regsrv.UnregisterAssembly(MyBase.GetType().Assembly)
    End Sub

    Private Sub ServiceProcessInstaller1_AfterInstall(sender As Object, e As InstallEventArgs) Handles ServiceProcessInstaller1.AfterInstall

    End Sub

    Private Sub ServiceInstaller1_AfterInstall(sender As Object, e As InstallEventArgs) Handles ServiceInstaller1.AfterInstall

    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

您应该能够使用Context对象访问它们。

 'Get Protected Configuration Provider name from custom action parameter
        Dim variableName As String = Context.Parameters.Item("dialogSettingName")


  Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
    MyBase.Install(stateSaver)