

1年ほど前に作成、導入したソフトが先日突然「構成システムを初期化できませんでした」  
というエラーで起動しなくなりました。

調査しているとuser.configが破損してしまっているなど書かれている記事は見つけたのですが、  
このアプリではProperties.Settings.settingsでの定義はなくuser.configは作成されない？気がしています。(実際に探しましたがありませんでした)

アプリケーションの構成は `xxx.exe` と `xxx.exe.config` の2つのみです。

基本的に本ソフトはタスクスケジューラで指定時刻に実行するのみなので正常に動作していたころからconfigファイルの変更はありません(差分比較済み)

原因や `Appdata/user/Local...` 以下のファイル以外で調査すべき個所はあるでしょうか。

VisualStudio2017C#で作成しています。

宜しくお願いします。


CC BY-SA 4.0
2020-04-15T04:47:11.633
65632
2020-05-28T16:46:16.373
2020-05-28T16:46:16.373
3060
19580
question
c# windows .net
「構成システムを初期化できませんでした」エラーについて


[Process Monitor](https://docs.microsoft.com/en-
us/sysinternals/downloads/procmon)を使うとどのプロセスがどのファイルを操作していたかがわかります。  
最後に開いていたファイルが原因のはずですので、ファイル名を確認してみるといいでしょう。


CC BY-SA 4.0
2020-04-15T05:35:37.387
65636
2020-04-15T05:35:37.387
4236
65632
answer


私どものアプリも今年になって数件同様の現象が発生して困っています。

まだ原因は全くわかっていませんが、アプリをインストールフォルダ (exe，config等)
ごとコピーして別のフォルダ名にすると、そのコピーしたフォルダ内からであればアプリが正常に起動できるようになります。

ただ、そのフォルダ名を元のフォルダ名に変更すると、また同様のエラーが発生して起動できません。

アプリはVS2013 VB.NETで、.NetFramework4 Client Profile対象です。  
PCのOSは Windows10 Pro 64Bit (1809) です。


CC BY-SA 4.0
2020-05-28T02:39:57.840
67062
2020-05-28T16:43:25.183
2020-05-28T16:43:25.183
3060
40362
65632
answer


> 原因、Appdata/user/Local....以下のファイル以外で調査すべき個所はあるでしょうか。

`C:\Users\[ユーザ名]\AppData\Local\[会社名]\[EXE名]_Url_[ランダムな文字]\[アプリのバージョン]`  
フォルダの中に `user.config` という名称のファイルがあると思うので そのファイルが破損していないか確認してみてください。  
XML として正しいかどうか・・。

このファイルは ユーザ毎の設定ファイルなので、削除しても 問題なく動作すると思います。  
※ 実際は アプリの作りによるので 一概には言えませんが・・・・。

> 1年ほど前に作成、導入したソフト

もし修正できるのであれば、 起動時に プロパティーを読み込みで例外が発生した場合に その `user.config`
ファイルを削除するようなコードを入れられるといいと思います。

user.config ファイルの フルパスは

[code]

    string fileName = System.Configuration.ConfigurationManager.OpenExeConfiguration(
    　System.Configuration.ConfigurationUserLevel.PerUserRoaming).FilePath;
    
[/code]

で 求める事ができます。

また、エラー発生した時の原因となった定義ファイルは その例外の情報から取り出すことができます。

[code]

    catch(System.Configuration.ConfigurationErrorsException exp)
    {
       string fileName = 
          (exp.InnerException as System.Configuration.ConfigurationException)?.Filename;
    
    
[/code]

私も 以前作成したアプリで よく同様の現象が発生したので苦労した覚えがあります。


CC BY-SA 4.0
2020-05-28T16:19:06.150
67093
2020-05-28T16:19:06.150
18851
65632
answer