我有一个自定义应用程序,其中包含一个简单的 app.config 指定 SQL Server 名称和数据库,我想在应用程序安装时提示用户应用程序配置项,然后更新 app.config 文件。
我承认我对设置项目完全陌生,并且正在寻找一些指导。谢谢马克·库普斯
我有一个自定义应用程序,其中包含一个简单的 app.config 指定 SQL Server 名称和数据库,我想在应用程序安装时提示用户应用程序配置项,然后更新 app.config 文件。
我承认我对设置项目完全陌生,并且正在寻找一些指导。谢谢马克·库普斯
我在 64 位机器上链接到的代码 Gulzar 有问题。我发现下面的链接是将值从配置 ui 获取到 app.config 的简单解决方案。
http://raquila.com/software/configure-app-config-application-settings-during-msi-install/
看看这个 -具有用于更改设置的自定义操作的安装程序
App.Config 可以更改...但是它存在于类似于 HKEY___LOCAL_MACHINE 的位置,即普通用户具有只读访问权限。
因此,您需要以管理员身份对其进行更改 - 最佳时间是在安装期间,您(应该)使用增强的权限进行安装。
因此,创建一个 Installer 类,在安装项目中使用自定义操作来传递用户的选择(例如“/svr=[SERVER] /db=[DB] /uilevel=[UILEVEL]”),并且在 AfterInstall 事件中,使用以下内容更改 App.Config 文件:
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
创建用于 Visual Studio 安装项目的自定义对话框:http: //www.codeproject.com/Articles/18834/Create-custom-dialogs-for-use-in-your-Visual-Studi