如果项目有这些目录
MyProject
- bin
- Debug
- program.exe
- Release
- program.exe
- program.cs
在何处放置将由程序解析的data.csv
文件?
我希望将它与程序放在同一个文件夹中。我是否必须将其复制到Debug和Release dirs?或者有更好的方法吗?
修改
我还需要将整个目录复制到输出目录,但Visual Studio没有此选项。我找到了答案here。如果目录很大(就像我的情况一样),可以解决使用/D
xcopy属性仅复制较新的文件。在我的例子中,我将此命令添加到后期构建事件(项目 - >属性),它运行良好:
xcopy "$(ProjectDir)\FolderToCopy" "$(TargetDir)\FolderToCopy" /D /E /I /Q /Y
答案 0 :(得分:3)
您可以将它放在项目中的任何位置(bin / obj文件夹中除外)。要将其复制到输出中,只需将其标记为“复制到输出目录”:
F4
这将列出项目msbuild文件(.csproj文件)中的文件,如下所示:
<None Include="data.csv">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
相反:
<None Include="data.csv" />
如果您没有按上面所述更改设置。
正如我所注意的,您可能希望避免使用术语“资源”,因为它通常用于嵌入到程序集中的文件(例如.resx文件)。您可以可以,也可以使用您的data.csv文件执行此操作:它不会将其复制到输出目录,而是嵌入到程序集中。您需要访问a different way though中的文件。实现只需将“Build Action”更改为“Embedded Resource”,而不是设置“Copy to Output Directory”设置。
答案 1 :(得分:2)
Visual Studio的默认方法是在Resources
下创建一个MyProject
文件夹。
然后,在项目设置中,转到Resources
选项卡,并且有一个链接可以为您生成资源文件。它通常会在Resources.resx
文件夹中为您创建Properties
文件。
您可以在那里添加资源。
如果你不想将它编译到程序集中,但是它旁边有它,你可以通过设置Copy to output directory
属性来包含项目文件夹(甚至链接文件)中的文件。它会将文件复制到bin
文件夹中。