今天遇到了一个奇怪的问题,程序在客户的电脑上开始的时候可以运行,打开的时候忽然提示“配置系统未能初始化”。
网上搜索了一下,大部分都是说程序的app.config配置文件出错了。因为程序本身的原因,部分配置信息并没有自己定义xml文件进行保存,而是使用vs提供的Settings.settings文件进行保存。而我们使用的是用户级别来保存这些配置。网上搜索,知道这些配置文件都保存在“C:Documents and Settings当前用户Local SettingsApplication Data程序名”目录中。而我查看了一下用户的电脑,并没有我们的程序。
最后在我本地通过程序修改了配置文件,查看最后修改的文件。发现我们的程序放在“C:Documents and Settings当前用户Local SettingsApplication DataMicrosoft_Corporation”,因为我们开发的是excel插件,所以放在了这个目录下。
打开对应的文件,删除了对应的user.config文件。重新运行程序,可以正常运行了,问题解决了。
把用户当时的user.config文件发到我本地,和我本地正常的文件进行对比。想要看看到底是哪里出了问题。结果用户的配置文件打开后是乱码。或许是保存配置信息的时候忽然出现什么状况,导致保存中断;也可能是其他原因吧。
补充:客户操作系统是win7,没有打开Application Data目录的权限。搜索了解决方法,附在下面:
方法/步骤
-
在电脑磁盘任意位置建立一个记事本,复制下面代码(CTRL+C),粘贴(CTRL+V)到记事本保存。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT*shell unas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT*shell unascommand]
@="cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F"
[HKEY_CLASSES_ROOTexefileshell unas2]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOTexefileshell unas2command]
@="cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F"
[HKEY_CLASSES_ROOTDirectoryshell unas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOTDirectoryshell unascommand]
@="cmd.exe /c takeown /f "%1" /r /d y && icacls "%1" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f "%1" /r /d y && icacls "%1" /grant administrators:F /t"
-
粘贴后保存,把记事本后缀名改为reg.点击reg文件运行。
-
打开C:UsersDell(此为用户名),每个电脑取的名字不一样,打开的文件夹也不一样。打开后,找到Application Data文件,如果找不到该文件夹,说明系统把相关文件隐藏了,需打开。操作为:打开任意磁盘》点击菜单栏“工具”》选择“文件夹选项”》点击“查看”》设置相关内容。
-
通过上述步骤后,应该可以看到Application Data文件夹了,点击右键,在弹出的菜单栏选择“管理员取得所有权限”,这个选项如何不运行第一步的REG文件,是不会有的。
-
4、点击“管理员取得所有权限”运行,会弹出DOS窗口自动运行一连串的命令,这里可以不管,等待运行完就行了。
-
5、运行完以后,就可以打开Application Data了。类似带快捷方式的文件夹同样适用改办法。