MSBuild中如何动态设置项元数据实现WPF项目ViewModel文件嵌套
WPF项目ViewModel自动嵌套到对应View下的实现方法
直接在你的.NET5 WPF项目的.csproj文件中添加如下配置即可实现动态自动匹配:
<ItemGroup> <Content Include="**\*ViewModel.cs"> <DependentUpon>$([System.String]::Copy('%(Filename)').Replace('ViewModel', 'View').xaml)</DependentUpon> </Content> </ItemGroup>
配置说明
%(Filename)是MSBuild内置的元数据,代表当前匹配到的文件的文件名(不含后缀),例如匹配到GameWorldViewModel.cs时,该值为GameWorldViewModel- 通过字符串处理逻辑:先复制文件名,把后缀
ViewModel替换为View,再拼接.xaml后缀,最终得到对应的View文件名称
注意事项
- 请确保成对的ViewModel和View文件存放在同一个目录下,该配置才能正常生效
- 如果你的项目中ViewModel文件默认的生成操作是
Compile,只需要把配置中的Content标签替换为Compile即可 - 保存
.csproj文件后重新加载项目,即可在解决方案资源管理器中看到嵌套效果 - 出现未正确嵌套的文件优先检查命名是否符合规则,有无拼写错误
内容的提问来源于stack exchange,提问作者martinrhan
相关产品推荐
相关产品推荐

