App.Config können geändert werden ... aber existiert es in einer Lage ähnlich heißt der durchschnittliche Benutzer HKEY___LOCAL_MACHINE hat nur Lesezugriff.
Also müssen Sie es als Administrator ändern - beste Zeit wäre während der Installation, wo Sie mit erweiterten Berechtigungen installieren sollen (soll).
So erstellen Sie eine Installer-Klasse, verwenden Sie eine benutzerdefinierte Aktion im Setup-Projekt, um die Benutzerauswahl (zB "/ svr = [SERVER]/db = [DB]/uilevel = [UILEVEL]") und, in das Afterinstall-Ereignis, um die Datei wie etwas mit App.Config ändern:
Public Shared Property AppConfigSetting(ByVal SettingName As String) As Object
Get
Return My.Settings.PropertyValues(SettingName)
End Get
Set(ByVal value As Object)
Dim AppConfigFilename As String = String.Concat(System.Reflection.Assembly.GetExecutingAssembly.Location, ".config")
If (My.Computer.FileSystem.FileExists(AppConfigFilename)) Then
Dim AppSettingXPath As String = String.Concat("/configuration/applicationSettings/", My.Application.Info.AssemblyName, ".My.MySettings/setting[@name='", SettingName, "']/value")
Dim AppConfigXML As New System.Xml.XmlDataDocument
With AppConfigXML
.Load(AppConfigFilename)
Dim DataNode As System.Xml.XmlNode = .SelectSingleNode(AppSettingXPath)
If (DataNode Is Nothing) Then
Throw New Xml.XmlException(String.Format("Application setting not found ({0})!", AppSettingXPath))
Else
DataNode.InnerText = value.ToString
End If
.Save(AppConfigFilename)
End With
Else
Throw New IO.FileNotFoundException("App.Config file not found!", AppConfigFilename)
End If
End Set
End Property
Dank für diesen Artikel. Gibt es eine Möglichkeit, den Wert von Config im Textfeld von CustomAction zu lesen? – Praveen