我正在嘗試爲我的Windows服務創建msi安裝。創建msi的原因是,預期的用戶希望能夠儘可能少地進行干預來快速安裝服務。在MSI安裝期間配置App.config應用程序設置vb.net
我可以得到安裝爲msi的服務,但我的代碼中有一個變量,我需要用戶定義msi的安裝時間。我從用戶需要的變量是他們希望我的服務創建的xml文件位於的文件路徑。
我想我可以配置app.config應用程序設置來包含xml文件應寫入的文件路徑。然而,我正在努力做到這一點,我不確定它是否是最好的方法呢?
我有我的安裝項目,其中包含我的可執行文件,並有我的文本框將包含用戶的一個變量。
我有一個安裝程序類,其中包含我的serviceinstaller和進程安裝程序。這就是我努力理解接下來要做什麼的地方。 我是否需要重寫安裝方法?我安裝程序類的當前的代碼是自動生成的,如下:
Imports System.Configuration.Install
Imports System.Configuration
<System.ComponentModel.RunInstaller(True)> Partial Class ProjectInstaller
Inherits System.Configuration.Install.Installer
'Installer overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Component Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Component Designer
'It can be modified using the Component Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.ServiceProcessInstaller1 = New System.ServiceProcess.ServiceProcessInstaller()
Me.ServiceInstaller1 = New System.ServiceProcess.ServiceInstaller()
'
'ServiceProcessInstaller1
'
Me.ServiceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem
Me.ServiceProcessInstaller1.Password = Nothing
Me.ServiceProcessInstaller1.Username = Nothing
'
'ServiceInstaller1
'
Me.ServiceInstaller1.ServiceName = "Spotter"
Me.ServiceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic
'
'ProjectInstaller
'
Me.Installers.AddRange(New System.Configuration.Install.Installer() {Me.ServiceProcessInstaller1, Me.ServiceInstaller1})
End Sub
Friend WithEvents ServiceProcessInstaller1 As System.ServiceProcess.ServiceProcessInstaller
Friend WithEvents ServiceInstaller1 As System.ServiceProcess.ServiceInstaller
End Class
我甚至可以添加CustomActionData值。該字符串決定了傳遞到用於收集輸入的用戶值的上下文對象中的內容。 param1是我的變量名稱。
我非常努力的安裝程序代碼...我想?
感謝您的回覆。閱讀你的榜樣,努力完全理解它。什麼是變量Me.XMLDir? – Simon 2012-02-01 22:02:21
該變量僅用於顯示提取在customdata中傳遞的值。這是你將用來更新app.config。 – 2012-02-02 06:35:40