在.csproj中包含在项目范围之外的内容文件
在.csproj中包含在项目范围之外的内容文件
我有一个C#项目,叫做MyProject.csproj,位于“C:\\Projects\\MyProject\\”。我还有一些文件,我希望将它们复制到这个项目的输出目录中。但是,这些文件位于“C:\\MyContentFiles\\”位置,即它们不在项目代码中。该目录还有子目录。该目录的内容没有进行管理。因此,我必须包含其中的所有内容。
当我将它们包含在项目中作为“内容”时,它们会被复制,但是目录结构会丢失。我做了这样的事情:
PreserveNewest
如何递归地复制这些文件/目录到项目的输出目录,并保留目录结构?
admin 更改状态以发布 2023年5月21日
您需要将文件添加为链接:
- 在VS中,右键单击项目。
- 添加 -> 现有项...
- 找到文件。
- 选择它。
- 将它作为链接添加(在对话框中的添加按钮中选择下拉菜单)。
- 打开文件属性,将“复制到输出目录”设置为“始终复制”。
但是,您无法为目录树执行此操作。
相反,您需要为此编写后构建任务。 这是一个示例,可以让您开始进行。
我认为在一方面@Dmytrii说得很对 - 你想使用"链接"功能。
然而,他的说法在无法使用Visual Studio的GUI添加链接时只是部分正确的,当使用MSBuild时则是支持的。
如果想保留目录结构,只需在节点中添加
%(RecursiveDir)
标签:
%(RecursiveDir)%(Filename)%(Extension) PreserveNewest
MSBuild Well-known Item Metadata页面详细介绍了可访问的元数据。