资源文件放在哪里?

时间:2014-07-04 11:33:32

标签: c# visual-studio-2010

如果项目有这些目录

  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

xcopy syntax

2 个答案:

答案 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文件夹中。

相关问题