C# 查找不在我的WPF中的文件';s exe路径?
我的exe路径是C# 查找不在我的WPF中的文件';s exe路径?,c#,wpf,.net-4.0,C#,Wpf,.net 4.0,我的exe路径是c:\dev\source\project1\bin\debug\app.exe 但是我的XML文件位于c:\dev\source\project1\file.XML 如何在运行时加载XML文件,目前我一直在硬编码绝对url,但我不想这样做 如果我更改位置或最终用户将文件移动到另一个位置,例如,file.xml被移动到project1下名为sub的子目录,那么在这种情况下会发生什么,我将不得不再次更改内容。有没有办法不必担心文件的位置?只需在app.config文件中指定Xml文
c:\dev\source\project1\bin\debug\app.exe
但是我的XML文件位于c:\dev\source\project1\file.XML
如何在运行时加载XML文件,目前我一直在硬编码绝对url,但我不想这样做
如果我更改位置或最终用户将文件移动到另一个位置,例如,
file.xml
被移动到project1
下名为sub
的子目录,那么在这种情况下会发生什么,我将不得不再次更改内容。有没有办法不必担心文件的位置?只需在app.config文件中指定Xml文件的路径即可。当路径更改时,您不必担心硬编码和EXE的编译。只需在配置中更改路径,一切正常
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="xmlFile" value="c:\dev\source\project1\file.xml"/>
</appSettings>
</configuration>
在您的解决方案资源管理器中,转到XML文件集
复制到输出目录
到始终复制
或复制(如果更新)
这将把XML文件的副本放在c:\dev\source\project1\bin\debug\
中,并让您的程序引用与exe位于同一文件夹中的版本
如果用户失控,决定更改目录名和文件名,那么这不需要他们更改应用程序。配置是的,更改文件路径后,用户可以自己在配置文件中配置xml的新路径。很好,这很有效。使用
Environment.CurrentDirectory
或AppDomain.CurrentDomain.BaseDirectory
更好吗?还是有更好的东西始终是可执行文件的目录?我必须将构建操作更改为内容。默认情况下,它是资源。是的,他们可能首先需要直接编辑它,但稍后,我可能会有一个GUI,或者不管他们如何编辑它。为什么你不把配置放在app.conifg文件中?我一开始从未想过这一点。