在Visual Studio 2017(新csproj格式)中如何将Resources文件夹设为EmbeddedResource?
在Visual Studio 2017+新csproj格式中批量设置Resources文件夹文件为EmbeddedResource
嗨,在VS2017及以后的SDK-style项目(也就是你说的新csproj格式)里,批量配置文件夹内所有文件的Build Action可比旧格式省心太多了,不需要写复杂的MSBuild脚本,用通配符就能搞定!
操作步骤:
- 在Visual Studio里右键你的项目,选择编辑项目文件(Edit Project File),直接打开csproj的XML内容。
- 在文件中添加一个
ItemGroup节点,用通配符递归匹配Resources文件夹下的所有文件:<ItemGroup> <!-- 匹配Resources文件夹下所有层级的文件,包括子文件夹内的文件 --> <EmbeddedResource Include="Resources\**\*" /> </ItemGroup> - 保存文件,Visual Studio会自动重载项目,此时Resources文件夹内的所有文件都会被设置为
EmbeddedResource。
进阶技巧:排除特定文件
如果有个别文件不需要设置为EmbeddedResource,可以通过Exclude属性指定要排除的文件(支持多个文件,用分号分隔):
<ItemGroup> <EmbeddedResource Include="Resources\**\*" Exclude="Resources\不需要嵌入的文件.txt;Resources\子文件夹\示例图片.png" /> </ItemGroup>
原理说明
新的SDK-style csproj原生支持通配符批量配置,**\*表示递归匹配目标文件夹下的所有层级文件,这种写法比旧格式里逐个文件声明或者编写复杂的MSBuild任务高效得多,也是新格式项目的一大优势。
内容的提问来源于stack exchange,提问作者William Jockusch
相关产品推荐
相关产品推荐

