读配置文件的问题,为何C#中的配置文件只能命名App.config?在线等!!

fengjingyu 2004-06-23 11:38:13
我新添加了一个配置文件,添加时默认的文件名为App.config,内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Command" value="load.exe"/>
<add key="URL" value="http://172.28.122.32:8102"/>
<add key="ModuleID" value="default"/>
<add key="ClientID" value="A01"/>
</appSettings>
</configuration>

exe程序中:
String strURL = ConfigurationSettings.AppSettings["URL"];
String strCABFile = ConfigurationSettings.AppSettings["ModuleID"];

Console.WriteLine(strURL);
Console.WriteLine(strCABFile);

可以得到App.config文件中的内容?

但是我重新写了一个exe,添加config文件时没有用默认的App.config文件名,用了load.config,为何就不能得到其中的值?

望高手给予指点,谢谢!
...全文
513 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
rgwfeng2 2004-09-03
  • 打赏
  • 举报
回复
mark
AK-7777 2004-07-03
  • 打赏
  • 举报
回复
UP
gxxlc 2004-07-03
  • 打赏
  • 举报
回复
GZ
「已注销」 2004-06-23
  • 打赏
  • 举报
回复
就是楼上说的,IDE默认用App.config,编译的时候自动会根据生成的exe文件来命名。

如你的程序是hello.exe,那么IDE会自动在同一目录下生成hello.exe文件。你用其他的ide找不到。
Mycro 2004-06-23
  • 打赏
  • 举报
回复
顶!
demonfox 2004-06-23
  • 打赏
  • 举报
回复
As far as I know, the answer is no. It has to be App.config, which will be renamed to "youapp.exe.config" and copied to bin/debug (or bin/release) directory.
fengjingyu 2004-06-23
  • 打赏
  • 举报
回复
哦,我明白了,原来是我先编译,在创建这样一个文件就不行了,谢谢楼上诸位!
demonfox 2004-06-23
  • 打赏
  • 举报
回复
我一开始就说过了(第一帖,呵呵),流程是这样的: 假设你的Project叫Foobar,位于E:\Foobar,App.config是在你Project的目录下,就是E:\Foobar。Visual Studio在编译完成后会把这个文件重命名为Foobar.exe.config,然后copy到E:\Foobar\bin\Debug(或Release),Foobar.exe运行的时候,实际使用的是Foobar.exe.config。不信的话,你可以在编译结束后,用notepad打开Foobar.exe.config,改动一下里面的内容,再运行一下Foobar.exe看看。
supermac 2004-06-23
  • 打赏
  • 举报
回复
private string appPath = Application.ExecutablePath+".config";
private XmlDocument configData=new XmlDocument();
private string GetAppValue(string key)
{
return configData.SelectSingleNode("/configuration/appSettings/add[@key='"+key+"']").Attributes["value"].Value;
}



========================
strText=GetAppValue("date")
===========================
app.config必须在源码目录下,在ide里用添加方式加入

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<!-- head -->
<add key="date" value="[06.16]" />
<add key="department" value="[EPOP]" />
</appSettings>
</configuration>
fengjingyu 2004-06-23
  • 打赏
  • 举报
回复
楼上的大哥,能给出具体详细的步骤吗?
或许是我的步骤不对,

万分感谢。
fengjingyu 2004-06-23
  • 打赏
  • 举报
回复
楼上的几位大哥,我现在的exe文件名就是loader.exe,但是就只认App.config,太奇怪了。

况且IDE生成的config文件不在exe文件的文件夹内,而在该工程的目录下。
sea026 2004-06-23
  • 打赏
  • 举报
回复
如果更改了exe文件名,同时也更改config的文件名,只要一致就可以。

sea026 2004-06-23
  • 打赏
  • 举报
回复
我现在的exe文件名是loader.exe,我希望config文件名是loader.exe.config
---------------------------------------------------

你生成exe文件的文件夹内肯定是loader.exe.config
CMIC 2004-06-23
  • 打赏
  • 举报
回复
如果你的exe文件名是loader.exe,config文件名是loader.App.config.
fengjingyu 2004-06-23
  • 打赏
  • 举报
回复
就是楼上说的,IDE默认用App.config,编译的时候自动会根据生成的exe文件来命名。

如你的程序是hello.exe,那么IDE会自动在同一目录下生成hello.exe文件。你用其他的ide找不到。
------------------------------------------------------------------------
是这样吗?我现在的exe文件名是loader.exe,我希望config文件名是loader.exe.config,但是只能读出App.config的内容。
CMIC 2004-06-23
  • 打赏
  • 举报
回复
ConfigurationSettings.AppSettings只能读取默认的App.config文件名,你可以通过右键点击项目->添加新项->应用程序配置文件添加一个配置文件。

111,118

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧