如果项目有这些目录
MyProject
- bin
- Debug
- program.exe
- Release
- program.exe
- program.cs
将程序解析的 data.csv
文件放在哪里?
我想把它放在与程序相同的文件夹中。我必须将它复制到 Debug 和 Release 目录吗?或者有更好的方法吗?
编辑
我还需要将整个目录复制到输出目录,但 Visual Studio 没有此选项。我找到了答案 here .如果目录很大(就像我的情况一样),可以使用 /D
xcopy 属性只复制较新的文件来解决。就我而言,我将此命令添加到构建后事件(项目-> 属性)并且效果很好:
xcopy "$(ProjectDir)\FolderToCopy" "$(TargetDir)\FolderToCopy" /D /E /I /Q /Y
( xcopy syntax )
最佳答案
您可以将它放在项目中您喜欢的任何位置(bin/obj 文件夹内除外)。为了将其复制到您的输出中,您只需将其标记为“复制到输出目录”:
- 在项目中包含文件
- 单击解决方案资源管理器中的文件
- 点击
F4
- 在属性窗口中,将“复制到输出目录”设置更改为“始终复制”或“更新时复制”中的任何一个
这将在您的项目 msbuild 文件(.csproj 文件)中列出文件,如下所示:
<None Include="data.csv">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
相对于:
<None Include="data.csv" />
如果您没有按照上面的说明更改设置。
正如我所附注的那样,您可能希望避免使用术语“资源”,因为它通常用于嵌入到程序集中的文件(例如 .resx 文件)。可以想象,您可以也对 data.csv 文件执行此操作:与其将其复制到输出目录,不如将其嵌入到程序集中。您需要访问 a different way though 中的文件.要实现这一点,只需将“构建操作”更改为“嵌入式资源”,而不是设置“复制到输出目录”设置。
关于c# - 资源文件放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24573363/