App.config相对路径

时间:2009-08-26 12:40:47

标签: c# app-config

我有“图标”文件夹。 我需要访问它才能向imageList添加图标。 我正在使用具有相对路径的app.config文件。

<add key="doc" value="..\Icons\_Microsoft Office Excel 97-2003 Worksheet.ico" />

我正在使用下面的代码将其添加到imgList,但它会抛出System.IO.FileNotFoundException

smallImageList.Images.Add(Image.FromFile(ConfigurationSettings.AppSettings["doc"]));

这里有什么问题?

5 个答案:

答案 0 :(得分:7)

尝试添加当前的运行路径:

smallImageList.Images.Add(Image.FromFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationSettings.AppSettings["doc"])));

答案 1 :(得分:2)

您可能需要将其与System.AppDomain.CurrentDomain.BaseDirectory连接。

我猜想FromFile是相对于当前工作目录很容易改变的。另一件需要考虑的事情是将图像嵌入到程序集中

答案 2 :(得分:2)

转到媒体资源,找到&#39;复制到输出目录&#39;财产并选择&#34;永远复制&#34; 。那应该没问题。希望它会有所帮助。

答案 3 :(得分:0)

尝试使用tilda ......

value="~\Icons_Microsoft Office Excel 97-2003 Worksheet.ico"

哪个应该从应用程序根目录开始。

答案 4 :(得分:0)

您的工作文件夹在程序执行期间以某种方式被修改过,您必须找到自己的路径。

试试这个:

using System.Reflection;
string CurrDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

smallImageList.Images.Add(Image.FromFile(Path.Combine(CurrDirectory,ConfigurationSettings.AppSettings["doc"])));