如何将文件夹(含子目录)所有文件添加为embedded resource?
递归配置目录文件为嵌入式资源操作方法
直接修改项目配置文件即可实现自动匹配新增子目录的需求,无需每次新增文件夹后手动调整配置:
- 右键你的数据库项目,选择「卸载项目」,再次右键选择「编辑项目文件」,打开项目的XML配置文件
- 找到现有嵌入式资源配置节点,或新增如下配置块:
<!-- 示例为匹配项目下Scripts目录所有层级的.sql文件,可按需修改根目录路径 --> <EmbeddedResource Include="Scripts\**\*.sql"> <!-- 如需要保留目录层级作为资源名称前缀,可删除下方LogicalName节点 --> <LogicalName>%(Filename)%(Extension)</LogicalName> </EmbeddedResource>
- 配置中的
**就是MSBuild内置的递归匹配标记,功能和你需要的--recurse参数完全一致,后续所有新增到根目录下任意层级的符合规则的文件,都会被自动识别为嵌入式资源 - 如果需要匹配根目录下所有类型的文件,将配置中的
*.sql修改为*.*即可 - 保存项目文件后右键项目选择「重新加载项目」,重新生成即可生效
注意:如果是.NET Core/.NET 5+的SDK风格项目,上述配置可直接生效;如果是旧的.NET Framework非SDK风格项目,需确保项目配置中没有设置
<EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>,否则默认资源匹配规则会被禁用,需要额外调整配置。
内容的提问来源于stack exchange,提问作者Chip Adams
相关产品推荐
相关产品推荐

