MSBuild:如何在使用项目依赖项时保留其他文件
本文关键字:依赖 保留 文件 其他 项目 MSBuild | 更新日期: 2023-09-27 18:33:14
我有 2 个 C# 项目,A 和 B。在 A 的 csproj 文件中,它将使用复制任务将文件 C 复制到目标文件夹
然后,项目 B 使用 B 的 csproj 文件中的<ProjectReference>
引用项目 A。
现在的问题是,在构建项目 B 时,目标文件夹中不会有 C,知道吗?
您能否将要复制的文件添加为内容项,并将CopyToOutputDirectory
标签设置为Always
,而不是在项目 A 中使用Copy
任务,如下所示:
<ItemGroup>
<Content Include="SomeFile.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
(这也可以通过在Visual Studio的GUI中通过在文件属性中将"复制到输出目录"设置为"始终复制")来完成)
然后,当项目 B 引用项目 A 时,这应该会按照您想要的方式运行,文件 C (SomeFile.txt) 将同时出现在项目 B 和项目 A 的输出目录中。
我已经在Visual Studio 2013上对此进行了测试,并且按预期工作。请注意 CopyToOutputDirectory 的限制,但它将尝试重新创建存储在输出目录中的文件夹结构,这并不总是可取的。