C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.102155 の関連記事表示

<< 0 >>
■102155  アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ VBEgg -(2023/07/12(Wed) 00:17:31)

    分類:[.NET 全般] 

    2023/07/12(Wed) 00:20:33 編集(投稿者)
    2023/07/12(Wed) 00:19:19 編集(投稿者)
    2023/07/12(Wed) 00:19:12 編集(投稿者)

    <pre><pre>開発環境 Windows10
    Microsoft Visual Studio Version 
    Microsoft Visual Studio Community 2022 (64 ビット) - Current
    Version 17.6.4


    すみません、かなりの初心者となります。

    アプリケーション設定ファイルの使い方をテストしようとしていたのですが、
    アプリケーション設定ファイルにて設定済みのデータを、
    My.Settings.TimerUseFlg
    にて呼び出したところ、Settings.Designer.vbが表示され、エラーが発生しました。
    まだ何も他にはいじっていない状態ですので、何が悪いのかもわかりません。
    VB2015では同様のことをして大丈夫だったのですが、何か2015と2022で違いがあるのでしょうか?

    ソースコード
    Public Class FrmMain
    Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim wflg As Boolean

    wflg = My.Settings.TimerUseFlg
    Stop

    End Sub
    End Class

    エラー
    ハンドルされていない例外
    System.Configuration.ConfigurationErrorsException
    HResult=0x80131902
    Message=Configuration system failed to initialize
    Source=System.Configuration.ConfigurationManager
    スタック トレース:
    場所 System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
    場所 System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName)
    場所 System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.RefreshConfig(String sectionName)
    場所 System.Configuration.ConfigurationManager.RefreshSection(String sectionName)
    場所 System.Configuration.ClientSettingsStore.ReadSettings(String sectionName, Boolean isUserScoped)
    場所 System.Configuration.LocalFileSettingsProvider.GetPropertyValues(SettingsContext context, SettingsPropertyCollection properties)
    場所 System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider provider)
    場所 System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName)
    場所 System.Configuration.SettingsBase.get_Item(String propertyName)
    場所 System.Configuration.ApplicationSettingsBase.GetPropertyValue(String propertyName)
    場所 System.Configuration.ApplicationSettingsBase.get_Item(String propertyName)
    場所 VBEGG.My.MySettings.get_Pbln_TimerUseFlg() (C:\Users\VBEGG\Desktop\VBEGG\VBEGG\My Project\Settings.Designer.vb):行 62
    場所 VBEGG.FrmMain.FrmMain_Load(Object sender, EventArgs e) (C:\Users\VBEGG\Desktop\VBEGG\VBEGG\FrmMain.vb):行 5
    場所 System.Windows.Forms.Form.OnLoad(EventArgs e)
    場所 System.Windows.Forms.Form.OnCreateControl()
    場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    場所 System.Windows.Forms.Control.CreateControl()
    場所 System.Windows.Forms.Control.WmShowWindow(Message& m)
    場所 System.Windows.Forms.Control.WndProc(Message& m)
    場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    場所 System.Windows.Forms.ContainerControl.WndProc(Message& m)
    場所 System.Windows.Forms.Form.WmShowWindow(Message& m)
    場所 System.Windows.Forms.Form.WndProc(Message& m)
    場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)

    この例外は、最初にこの呼び出し履歴
    [外部コード] でスローされました

    内部例外 1:
    ConfigurationErrorsException: Unrecognized configuration section system.diagnostics. (C:\Users\VBEGG\Desktop\VBEGG\VBEGG\bin\Debug\net6.0-windows\VBEGG.dll.config line 8)
    </pre></pre>
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102156  Re[1]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ WebSurfer -(2023/07/12(Wed) 07:02:11)
    No102155 (VBEgg さん) に返信

    .NET Framework or .NET Core/.NET どっちですか? そのバージョンは?

    作っているのはなんですか? Windows Forms アプリ?

    > まだ何も他にはいじっていない状態ですので、何が悪いのかもわかりません。
    > VB2015では同様のことをして大丈夫だったのですが、何か2015と2022で違いがあるのでしょうか?

    どういう意味ですか? VS2015 で作った既存のプロジェクトをコピーしてきた?
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102157  Re[2]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ VBEgg -(2023/07/12(Wed) 07:44:13)
    2023/07/12(Wed) 07:48:58 編集(投稿者)
    2023/07/12(Wed) 07:48:55 編集(投稿者)

    レスありがとうございます。
    すみません。質問さえまともにできていないようですね。
    家を出てしまったので、.netFrameworkのバージョンは後ほどご連絡します。

    > .NET Framework or .NET Core/.NET どっちですか? そのバージョンは?
    .net Framework(バージョン?)

    > 作っているのはなんですか? Windows Forms アプリ?
    Windows Forms

    > どういう意味ですか? VS2015 で作った既存のプロジェクトをコピーしてきた?
    いえ、コピーはしてきていません。
    会社でFormを作成し、Loadイベントに同じことをして確認をしたのですが、
    問題無く設定の値を取れたので、家でもやってみようとしたらエラーが出た、
    という状況です。

    @VisualStudio2022をインストール
    A新規プロジェクトを作成
    Bメインのフォームを作成、起動時のフォームに変更
    C設定でアプリケーション設定を行い
    D上記コードを打ち込む
    Eデバッグボタンで起動→エラー


    No102156 (WebSurfer さん) に返信
    > ■No102155 (VBEgg さん) に返信
    >
    > .NET Framework or .NET Core/.NET どっちですか? そのバージョンは?
    >
    > 作っているのはなんですか? Windows Forms アプリ?
    >
    >>まだ何も他にはいじっていない状態ですので、何が悪いのかもわかりません。
    >>VB2015では同様のことをして大丈夫だったのですが、何か2015と2022で違いがあるのでしょうか?
    >
    > どういう意味ですか? VS2015 で作った既存のプロジェクトをコピーしてきた?
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102158  Re[3]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ WebSurfer -(2023/07/12(Wed) 08:01:46)
    No102157 (VBEgg さん) に返信

    不用な引用は避けてください。見にくくなるので。

    >>.NET Framework or .NET Core/.NET どっちですか? そのバージョンは?
    > .net Framework(バージョン?)

    間違いないですか? .NET Framework と .NET Core/.NET は違うのは分かってますか?

記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102159  Re[4]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ VBEgg -(2023/07/12(Wed) 08:48:26)
    > >>.NET Framework or .NET Core/.NET どっちですか? そのバージョンは?
    >>.net Framework(バージョン?)
    >
    > 間違いないですか? .NET Framework と .NET Core/.NET は違うのは分かってますか?
    間違いない、つもりですが、家に帰ってから確認します。

    ただし、今会社のPCにVisualStudio2022をインストールし、同様の事を試してみました。

    すると、エラーが発生することなく出来ましたが、
     Bメインのフォームを作成、起動時のフォームに変更
    を行うとエラーが発生しました。

    Bの作業を詳しく書きますと、
    1)メインのフォームを作成(FrmMain)
    2)Form1が不要だと判断、ソリューションエクスプローラーから削除を実行(Form1.vbという名前も気に入らなかったため)
    3)起動時のフォームをFrmMainに変更
    4)保存し、デバッグボタンを押下
     この際に、「Application.Designer.vb」が立ち上げり、Form1が無い、というエラーが出たので、手動で変更(下のソースの★部分)
     英語が余り読めないので、気にしていなかったのですが、直接修正しないでください、とかかれています。

    このForm1の削除とApplication.Designer.vbの修正がダメだったという気がしていますが、どう思われますか?


    Application.Designer.vb
    '------------------------------------------------------------------------------
    ' <auto-generated>
    ' This code was generated by a tool.
    ' Runtime Version:4.0.30319.42000
    '
    ' Changes to this file may cause incorrect behavior and will be lost if
    ' the code is regenerated.
    ' </auto-generated>
    '------------------------------------------------------------------------------

    Option Strict On
    Option Explicit On

    Namespace My

    'NOTE: This file is auto-generated; do not modify it directly. To make changes,
    ' or if you encounter build errors in this file, go to the Project Designer
    ' (go to Project Properties or double-click the My Project node in
    ' Solution Explorer), and make changes on the Application tab.
    '
    Partial Friend Class MyApplication

    <Global.System.Diagnostics.DebuggerStepThroughAttribute()>
    Public Sub New()
    MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
    Me.IsSingleInstance = False
    Me.EnableVisualStyles = True
    Me.SaveMySettingsOnExit = True
    Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
    End Sub

    <Global.System.Diagnostics.DebuggerStepThroughAttribute()>
    Protected Overrides Sub OnCreateMainForm()
    Me.MainForm = FrmMain ←★ここを変更★
    End Sub
    End Class
    End Namespace
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102161  Re[5]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ WebSurfer -(2023/07/12(Wed) 09:48:18)
    No102159 (VBEgg さん) に返信

    > ただし、今会社のPCにVisualStudio2022をインストールし、同様の事を試してみました。
    >
    > すると、エラーが発生することなく出来ましたが、
    >  Bメインのフォームを作成、起動時のフォームに変更
    > を行うとエラーが発生しました。

    別の問題を同じスレッドで質問すると発散しがちなので避けてください。

    会社で行ったことをよく覚えておいて、それと全く同じこと家に帰ってからやってみれば、
    No102155 の家だ起こった問題は解決するかも。
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102164  Re[6]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ VBEgg -(2023/07/12(Wed) 13:26:42)
    2023/07/12(Wed) 13:28:46 編集(投稿者)

    WebSurfer様

    返信ありがとうございます。

    > 会社で行ったことをよく覚えておいて、それと全く同じこと家に帰ってからやってみれば、
    > No102155 の家だ起こった問題は解決するかも。

    まさしくその通りかと思われますので、家帰ってからやってみることとします。

    お時間を頂きまして、ありがとうございました。
    帰宅して、問題が無ければ、この問題はクローズさせて頂きます。
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102166  Re[7]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ WebSurfer -(2023/07/12(Wed) 13:46:50)
    No102164 (VBEgg さん) に返信

    >>会社で行ったことをよく覚えておいて、それと全く同じこと家に帰ってからやってみれば、
    >>No102155 の家だ起こった問題は解決するかも。
    >
    > まさしくその通りかと思われますので、家帰ってからやってみることとします。

    解決しないかもしれません。

    エラーメッセージ「ConfigurationErrorsException 0x80131902 Configuration system
    failed to initialize」でググってみると以下の記事がヒットして known issue だと
    言ってますね。

    Configuration system failed to initialize
    https://developercommunity.visualstudio.com/t/configuration-system-failed-to-initialize-1/1683175

    質問者さんと同じ WinForms, .NET 6, ConfigurationErrorsException, line 8 だそ
    うです。

    その記事からリンクが張ってある、

    Updating the Default Settings file in a WinForms .NET 5 Visual Basic app fails.
    https://github.com/dotnet/project-system/issues/6784

    に再現手順が書いてあります。

    自分の環境 Windows 10 の Visual Studio Community 2022 17.6.5 で VB.NET, .NET 6 の
    WinForms アプリをテンプレートで作って、上の記事と同じ手順で試してみました。

    上の記事のような ConfigurationErrorsException にはなりませんでしたが、自動生成
    される Settings.Designer.vb に意味不明なコードが含まれ、エラーになります。

    以下に画像を貼っておきます。

    http://surferonwww.info/BlogEngine/image.axd?picture=2023%2f7%2fvs2022.jpg

    理由は分かりませんが(調べる気が起きません)、上の記事のステップ 4 で "Make sure
    to rename the Name to Settings.settings." としたのが何故か問題のようで、デフォル
    トの Settings1.settings のままにしておけば何故か問題は出ませんでした。




    Windows OS で動く WinForms アプリを .NET 6 で作るのは個人的には間違っているとさ
    え思います。

    そもそも、.NET 6 で作る WinForms アプリは C# でも以下の記事のような問題が多かっ
    たです (その後改善はされているようですが)。

    .NET 6.0 で Windows Forms アプリ作成
    http://surferonwww.info/BlogEngine/post/2021/12/04/create-winforms-application-using-visual-studio-2022-net-6.aspx

    VB.NET ではさらに今回のように問題があるようです。

    どうしても .NET 6 でなければならないという理由がなければ、.NET Framework 4.8 で
    作った方が良さそうです。

    それから、VB.NET もやめて C# で作ることをお勧めします。C# なら、自分が試した限り
    では、上のような問題は出ませんでした。
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102162  Re[5]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ 魔界の仮面弁士 -(2023/07/12(Wed) 10:03:13)
    No102159 (VBEgg さん) に返信
    > Bの作業を詳しく書きますと、
    > 1)メインのフォームを作成(FrmMain)
    > 2)Form1が不要だと判断、ソリューションエクスプローラーから削除を実行(Form1.vbという名前も気に入らなかったため)

    新規に追加して以前の物を削除する代わりに、既存のフォームを
    ソリューション エクスプローラーからリネームするという手もあります。
    どちらの方法をとるかはお好みで。


    > 3)起動時のフォームをFrmMainに変更
    .NET Framework 版の場合は、プロジェクトのプロパティの[アプリケーション]タブ - [スタートアップ フォーム]
    .NET 版の場合は、プロジェクトのプロパティの[アプリケーション]タブ - [全般]-[スタートアップ オブジェクト]
    ですね。


    > Me.MainForm = FrmMain ←★ここを変更★
    Visual Studio の更新バージョンによっては、スタート アップ変更後に
    MainForm の書き換えに失敗することがあります。

    その場合は今回行っていただいたように、手動で書き換えて対処してあげてください。
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102165  Re[6]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ VBEgg -(2023/07/12(Wed) 13:31:00)
    魔界の仮面弁士様

    返信ありがとうございます。

    作業手順を書いて頂き、助かります。
    参考にしながら、帰宅してから作業してみます。

    問題が発生しなければ、そのままクローズにいたします。
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102160  Re[1]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ 魔界の仮面弁士 -(2023/07/12(Wed) 09:47:28)
    No102155 (VBEgg さん) に返信
    > ConfigurationErrorsException: Unrecognized configuration section system.diagnostics. (C:\Users\VBEGG\Desktop\VBEGG\VBEGG
    > \bin\Debug\net6.0-windows\VBEGG.dll.config
    > line 8)

    出力先が "\bin\Debug\net6.0-windows" と書かれていることから、
    これは .NET Framework 向けではなく、.NET 6 向けの Windows Forms プロジェクトですね。


    VS2022 で新しいプロジェクトを作成する際の、プロジェクト テンプレートには
    よく似た名前が並んでいるのでご注意ください。

    (1)「Windows フォーム アプリケーション (.NET Framework)」
    (2)「Windows フォーム アプリ」

    前者は .NET Framework 向けで、後者が .NET / .NET Core 向けです。

    .NET Framework 版のフォームでは、既定のアイコンが「黄/赤/青の矩形」が並んだカラフルなものなのに対し、
    .NET 版では「濃灰色の矩形」が並んだダークカラーのものに変更されています。


    ちなみにそれぞれのプロジェクト名は、既定で
     (1) VB、C# 共に → WinFormsApp1
     (2) VB → WindowsApp1、C# → WindowsFormsApp1
    という名前付けになっています。

    (なので、既定のプロジェクト名を使っている質問者だと、言語やテンプレートをある程度絞り込めたりする…)


    > Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    >  Dim wflg As Boolean
    >  wflg = My.Settings.TimerUseFlg
    >
    > 場所 VBEGG.My.MySettings.get_Pbln_TimerUseFlg() (C:\Users\VBEGG\Desktop\VBEGG\VBEGG\My Project\Settings.Designer.vb):行 62

    設定名は "TimerUseFlg" だと言っていますが、
    エラーは "get_Pbln_TimerUseFlg" だと言っていますね。

    「Pbln_TimerUseFlg」という名に、何か心当たりはありますか?

    行番号的に、
     Public Property Pbln_TimerUseFlg() As Boolean
      Get
       Return 何某★(エラー発生個所)
      End Get
      Set 以下略
     End Property

    のあたりだと推察しますが、ConfigurationErrorsException であることから、
    アプリケーション設定ファイルの内容が破損している可能性が考えられます。


    ・アンチウイルス ソフトウェアによる監査と競合し、設定ファイルが破損してしまった
     → 中身がすべて 0x00 の NULL バイナリで埋め尽くされた設定ファイルを過去に何度見たことが…
    ・プロジェクトの App.config の内容に問題がある
     → 開発時の設定ミス
    ・実行フォルダーの VBEGG.dll.config の内容、またはユーザーフォルダーの user.config に問題がある
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102163  Re[2]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ VBEgg -(2023/07/12(Wed) 13:24:53)
    魔界の仮面弁士様

    返信ありがとうございます。

    > 出力先が "\bin\Debug\net6.0-windows" と書かれていることから、
    > これは .NET Framework 向けではなく、.NET 6 向けの Windows Forms プロジェクトですね。
    すみません。その辺に疎くて完全にわかっていません。
    勉強いたします。


    > 設定名は "TimerUseFlg" だと言っていますが、
    > エラーは "get_Pbln_TimerUseFlg" だと言っていますね。
    >
    > 「Pbln_TimerUseFlg」という名に、何か心当たりはありますか?

    心当たりあります。
    変数の命名規則が自分的に少し気持ち悪かったため、
    フォルダ名の修正をする必要があったため、
    こちらに掲載する前にテキストエディターで修正しました。(要は修正漏れです)

    会社PCでスタートフォームの変更を行う前はちゃんとMy.Settingsの値を参照できたので、
    明らかにForm1を削除したりしたせいなので、削除せずに開発を進めることとします。
記事No.102155 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102169  Re[3]: アプリケーション設定の呼び出しにてエラーが発生
□投稿者/ VBEgg -(2023/07/13(Thu) 15:53:55)
    遅くなりましたが、結果だけご報告してクローズいたします。

    VB2022のWindows Form アプリケーションを新規作成し(.Net6)、最初に作成されたForm1をそのまま放置してフォームを追加しようとしたところ、Form1を認識していないのか、追加するフォームの名前がデフォルトでForm1となっており、そのままの名前で追加すると当然エラーになりました。
    やっぱり.Net6は新規でプロジェクトを作成する際に、自身が作ったForm1をちゃんと認識していないのか、自動で作成される設定ファイルのどこかがおかしいのかわかりませんが、あまり作成しないほうが良い感じでした。

    VB2022では.Net5か.Net6、.Net7で作成できるため、.Net7でやったところ、当質問の内容は発生しませんでした。

    なお、WebSurferさんからのせっかくのアドバイスなのですが、私としては20年ほどのVBAの経験からのVBという流れがあり、コーディングの際のわかりやすさからvb.netを使っていくつもりです。
    ありがとうございました。

    魔界の仮面弁士さんも貴重なお時間を頂き、わかりやすく指導いただきありがとうございました。
記事No.102155 のレス / END /過去ログ178より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -