【发布时间】:2012-08-04 19:19:36
【问题描述】:
我正在使用在 Windows XP 下运行的具有应用程序设置的 vb.net Windows 窗体应用程序。
vs 2010 解决方案创建了一个 MyApplication.exe.config,但是当我使用记事本编辑文件时,即使在重新启动后应用程序也会忽略更改。即使我删除了 exe.config 文件,应用程序仍然使用编译时的设置。所以我决定用十六进制编辑器查看 exe 文件,发现设置被编码到 exe 中。
用户范围的设置正确保留,但它们的默认值不是来自 exe.config 而是来自其他地方。
我的应用程序是否有问题,或者这是 VB.Net Windows 窗体应用程序通常的工作方式?
我通常使用 C# 开发控制台或服务应用程序,在其中我可以毫无问题地编辑 exe.config。
有问题的行:
If My.Settings.UseLocalOrGlobalSettingForOutputFolder.ToUpper.Equals("LOCAL") Then
exe.config 文件看起来很正常
<applicationSettings>
<DHModule.My.MySettings>
<setting name="UseLocalOrGlobalSettingForOutputFolder" serializeAs="String">
<value>Local</value>
</setting>
这是一个 Visual Studio 2010 解决方案,其中包含大约 20 个项目,包括一个安装项目。我已删除并重建了相关项目。
我已经没有时间允许这个项目所以.....
注意:我将通过不使用任何应用程序范围的设置来解决此问题。
注意:我将通过不使用任何应用程序范围的设置来解决此问题。
注意:我将通过不使用任何应用程序范围的设置来解决此问题。
【问题讨论】:
-
Project + Properties,Debug 选项卡,取消勾选“Enable the Visual Studio hosting process”选项。这样将使用 MyApplication.exe.config 而不是 MyApplication.vshost.exe.config
-
问题不在开发机器上。它发生在安装它的机器上。
-
你能显示你访问设置的代码吗?你在使用“我的”命名空间吗?
-
是应用程序设置还是用户设置?我怀疑用户设置。
-
奇怪的是,用户设置工作正常。
标签: vb.net winforms windows-xp