c# - 资源文件放在哪里?

标签 c# visual-studio-2010

如果项目有这些目录

  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/

相关文章:

sql-server - 在安装项目的先决条件中包括 SQL Server Express Advanced 2012

visual-studio-2010 - 找不到命名空间(ASP.NET MVC 3)

visual-studio-2010 - TFS SCC : How can I get new files listed in the Pending Changes Panel in Visual Studio

c# - wcf 服务不工作 - 未能添加服务

c# - 从 Process.Start 记录到文本文件

nhibernate - 升级到 VS2010 和 Re#5 后 SQLite 相关 nUnit 测试的问题

c# - 使用 Ninject 确保 Controller 具有无参数公共(public)构造函数

c# - Ninject 中的 transient 范围对象何时停用?

c# - 测量 Parallel.For 的执行时间

c# - EF Linq to Entities 在实体集上调用 ToList() 生成包含多个左外连接的 SQL 命令