C# 从单独文件夹中的类访问项目文件 下面的屏幕截图来自解决方案资源管理器窗格:

C# 从单独文件夹中的类访问项目文件 下面的屏幕截图来自解决方案资源管理器窗格:,c#,.net,visual-studio,visual-studio-2010,C#,.net,Visual Studio,Visual Studio 2010,我在文件夹DataAccess中有一个类需要访问文件夹data中的资源。我收到以下错误消息 System.IO.IOException:找不到资源“data/danio\u rerio.xml”。 在以下情况下不起作用: 如果: 文件夹数据是文件夹数据访问中的子文件夹。我是否可以使用以下语法: foldername/somefile.someextension 要访问项目中位于不同文件夹中的资源 编辑:我不想将位置硬编码到我的目录。当您运行应用程序时,运行的目录将成为您的“active d

我在文件夹DataAccess中有一个类需要访问文件夹data中的资源。我收到以下错误消息

System.IO.IOException:找不到资源“data/danio\u rerio.xml”。

在以下情况下不起作用:

如果:

文件夹数据是文件夹数据访问中的子文件夹。我是否可以使用以下语法:

foldername/somefile.someextension

要访问项目中位于不同文件夹中的资源



编辑:我不想将位置硬编码到我的目录。

当您运行应用程序时,运行的目录将成为您的“active directory”

假设你有

c:\myproject\bin\debug\myapp.exe

运行应用程序时,您尝试搜索

c:\myproject\bin\debug\foldername\somefile.someextension

你真正想要的可能很接近

c:\myproject\data\daniorenio.xml

因此,您需要搜索以下目录

c:\myproject\bin\debug\..\data\daniorenio.xml

操作符告诉您要返回目录层次结构

不过,这是假设二进制文件位于比ressource更低的分支中。实际上,我所做的是将运行时绝对需要的所有内容复制到一个特殊目录中,例如

c:\myproject\RuntimeRequired

这样我就可以发出这样的生成后事件(在Project/Properties/build Events/post build中)


复制/Y“$(ProjectDir)RuntimeRequired*”$(OutDir)”

我自己找到了答案。在提供赏金之前应该多找些-_-

这些文件的“部署”设置是什么。通常,资源在编译时绑定到程序集中,然后通过
ResourceStream
而不是
FileStream
访问。