我制作了一个应用程序,它使用visual studio的app.config来存储关于复选框状态等的设置,这些工作正常。我从默认目录复制了应用程序的exe并运行它,我忘了app.config文件,但它仍然正常工作,app.config以某种方式编译到exe中,或者我仍然需要将它包含在与exe相同的文件夹?感谢。
答案 0 :(得分:2)
App.config文件(只有MyApplication.exe.config
才能复制构建/部署文件,如果你已经明确依赖它来编写你的应用程序。如果你没有完成此操作,或已将错误处理/默认值或操作放在无法读取配置文件的位置,可以假设您的应用程序可以在没有它的情况下运行。
答案 1 :(得分:2)
如果执行文件夹中缺少app.config文件,则所有读取应用程序设置的尝试都将返回空值;取决于您用来重新加载设置的机制,这将导致空引用异常,或者只是使用默认值。
另请注意,app.config
是文件的设计时名称。在运行时,您的应用实际上会查找ExecutableFile.exe.config
。你可能在没有意识到的情况下复制了它。
答案 2 :(得分:1)
在构建期间将重命名App.config以匹配应用程序名称,因此对于“myApp”,您将获得“myApp.exe”和“myApp.exe.config”。
你确定你肯定是在访问配置文件,或者运行正确的exe吗?愚蠢的问题,但值得检查。如果您只是存储设置,您可能能够运行应用程序而不会看到问题,除非您实际尝试保存。不是说这就是发生的事情,只是可能。
我记得从我的.net时代开始,保存到默认配置文件比阅读困难得多 - 你确定要保存到它吗?
答案 3 :(得分:1)
Visual Studio将生成一个.exe.config文件,其中包含构建时app.config中的设置。这是用于在运行应用程序时存储设置的文件。您应该复制该文件,不需要app.config。