在.csproj中包含在项目范围之外的内容文件

19 浏览
0 Comments

在.csproj中包含在项目范围之外的内容文件

我有一个C#项目,叫做MyProject.csproj,位于“C:\\Projects\\MyProject\\”。我还有一些文件,我希望将它们复制到这个项目的输出目录中。但是,这些文件位于“C:\\MyContentFiles\\”位置,即它们不在项目代码中。该目录还有子目录。该目录的内容没有进行管理。因此,我必须包含其中的所有内容。

当我将它们包含在项目中作为“内容”时,它们会被复制,但是目录结构会丢失。我做了这样的事情:

  PreserveNewest

如何递归地复制这些文件/目录到项目的输出目录,并保留目录结构?

admin 更改状态以发布 2023年5月21日
0
0 Comments

您需要将文件添加为链接:

  1. 在VS中,右键单击项目。
  2. 添加 -> 现有项...
  3. 找到文件。
  4. 选择它。
  5. 将它作为链接添加(在对话框中的添加按钮中选择下拉菜单)。
  6. 打开文件属性,将“复制到输出目录”设置为“始终复制”。

但是,您无法为目录树执行此操作。
相反,您需要为此编写后构建任务。 这是一个示例,可以让您开始进行。

0
0 Comments

我认为在一方面@Dmytrii说得很对 - 你想使用"链接"功能。

然而,他的说法在无法使用Visual Studio的GUI添加链接时只是部分正确的,当使用MSBuild时则是支持的。

如果想保留目录结构,只需在节点中添加%(RecursiveDir)标签:


  %(RecursiveDir)%(Filename)%(Extension)
  PreserveNewest

MSBuild Well-known Item Metadata页面详细介绍了可访问的元数据。

0