我有一个 C# 项目,其中包含一些我需要使用 Uri 类引用的资源。对于这个特定的问题,我在项目根目录的“Shaders”文件夹中放置了一些着色器,但我之前遇到过这个问题,其他文件如图像等。到目前为止,我使用了简单的解决方案,给出了一个固定的绝对路径,并确保该文件存在于该位置。不用说 - 这不是一个好的解决方案,从长远来看它不会奏效......
那么,我如何使用相对路径来引用我的资源呢?我想我的问题是双重的:
首先;我不想引用从我的调试文件夹到项目文件夹的相对路径。我希望将文件复制到构建文件夹。着色器包含在项目中,但显然这还不够。构建时如何告诉项目复制文件?或者;解决这个问题的常用方法是什么?
第二;当我将“Shaders”文件夹复制到我的构建文件夹时 - 我使用什么 Uri 语法来引用例如“myShader.ps”放在这个文件夹里?我可以简单地说
file:///Shaders/myShader.ps
吗?
最佳答案
要从您的应用程序目录中获取 Uri,请执行以下操作:
Uri baseUri = new Uri(System.Reflection.Assembly.GetEntryAssembly().Location); Uri shader = new Uri(baseUri, "shaders/test.ps");
关于c# - 在 .Net 中使用相对文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1759106/