14

SQL Server名とデータベースを指定する単純なapp.configを持つカスタムアプリケーションがあります。アプリケーションのインストール時にアプリケーション構成アイテムの入力をユーザーに求めてから、app.configファイルを更新します。

私はプロジェクトのセットアップにまったく慣れていないことを認め、いくつかのガイダンスを探しています。ありがとうマーク・クープス

4

4 に答える 4

7

64ビットマシンでリンクされているコードGulzarに問題がありました。以下のリンクは、configuiからapp.configに値を取得するための簡単なソリューションであることがわかりました。

http://raquila.com/software/configure-app-config-application-settings-during-msi-install/

于 2009-02-23T00:11:26.963 に答える
4

これをチェックしてください-設定を変更するためのカスタムアクションを備えたインストーラー

于 2008-10-30T03:16:25.107 に答える
1

App.Config は変更できます...ただし、HKEY___LOCAL_MACHINE に似た場所に存在します。つまり、平均的なユーザーは読み取り専用アクセス権を持っています。

そのため、管理者としてそれを変更する必要があります。最適な時期は、拡張されたアクセス許可でインストールする (想定される) インストール中です。

そのため、インストーラー クラスを作成し、セットアップ プロジェクトでカスタム アクションを使用してユーザーの選択を渡します (例: "/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
于 2008-11-26T05:26:43.387 に答える
0

Visual Studio セットアップ プロジェクトで使用するカスタム ダイアログを作成します: http://www.codeproject.com/Articles/18834/Create-custom-dialogs-for-use-in-your-Visual-Studi

于 2012-03-22T15:20:03.243 に答える