0

これは、私の最後の質問のフォローアップです: vb.net プロジェクトのインストール中に接続文字列を追加する

これは私がこれまでに持っているコードですが、行の「構成」は次のとおりです。

Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(exePath)

青い線があり、そのためにプログラムを実行できません。C# コードをそのコードに変換すると、青い線が表示されます。ここでやろうとしているのは、app.config で使用される接続文字列に使用できる文字列を取得することです。

System.ComponentModel をインポートします

System.Configuration.Install をインポートします

パブリック クラス InstallerClass

Public Sub New()
    MyBase.New()


    InitializeComponent()

End Sub


<RunInstaller(True)> _
Partial Public Class MyInstaller
    Inherits Installer


    Partial Public Class MyInstaller
        Inherits Installer


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


            MyBase.Install(stateSaver)

            Dim targetDirectory As String = Context.Parameters("targetdir")

            Dim param1 As String = Context.Parameters("Param1")

            Dim param2 As String = Context.Parameters("Param2")

            Dim param3 As String = Context.Parameters("Param3")


            Dim exePath As String = String.Format("{0}MyWindowsFormsApplication.exe", targetDirectory)

            Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(exePath)

            config.AppSettings.Settings("Param1").Value = param1

            config.AppSettings.Settings("Param2").Value = param2

            config.AppSettings.Settings("Param3").Value = param3

            config.Save()

        End Sub

    End Class




End Class

クラス終了

4

1 に答える 1

0

これがそれであるかどうかはわかりませんが、投稿したコードから気付いたことがいくつかあります。

  • ConfigurationManagerSystem.Configurationクラスと同様に名前空間から来ていますが、コードConfigurationに含まれていないようですImports System.Configuration(のみImports System.Configuration.Install)...Imports System.Configurationこれがまだない場合は、ステートメントを追加してみます

  • インストーラー プロジェクトにアセンブリへの参照を追加しましたか? System.Configuration(申し訳ありませんが、このアセンブリ参照がデフォルトで追加されているかどうかは覚えていません)

于 2013-03-28T17:44:44.783 に答える