c# - 在csproj中使用通配符时如何在xaml文件下嵌套xaml.cs

标签 c# msbuild csproj

我有一个关于 csproj 文件的问题。

由于我生成了一个很大的源代码库,因此我试图尽量减少项目文件上的冲突(与团队一起开发时)。

我设法通过使用这样的标签摆脱了大多数冲突:

<Compile Include="Services\**\*.cs" /> 

对于普通的 cs 文件和
<Page Include="Entities\**\*.xaml">
  <SubType>Designer</SubType>
  <Generator>MSBuild:Compile</Generator>
</Page>

用于 xaml 和代码隐藏。

不幸的是,我失去了 .xaml 和 .xaml.cs 对的分组,这是可以忍受但笨拙的。

有没有办法为这些创建通用模式?
<Compile Include="MainWindow.xaml.cs">
  <DependentUpon>MainWindow.xaml</DependentUpon>
  <SubType>Code</SubType>
</Compile>

我知道拆分 csproj 本身的可能性,但这会禁止解决方案范围的搜索,所以这是不行的

最佳答案

使用 MSBuild 15 的静态更新语法,你可以做到

 <Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" />

这里的技巧是 MSbuild 将路径分成 Filename ( foo.xaml.cs => foo.xaml ) 和 Extension ( foo.xaml.cs => .cs ),所以 %(Filename)可用于引用 xaml 文件。

关于c# - 在csproj中使用通配符时如何在xaml文件下嵌套xaml.cs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44018668/

相关文章:

c# - 从拆分字符串动态创建变量c#

algorithm - 有人有 PowerShell 的依赖关系图和拓扑排序代码片段吗?

msbuild - 展开包含其他属性名称的 MSBuild 属性

.net - 什么是 csproj 文件中的 <MvcProjectUpgradeChecked> 元素

c# - 如何使用 .NET 2.0 安全地托管插件

c# - 计算可能性的数学函数

deployment - 使用 Web Deploy 和 .NET Web.configs 构建一次,随处部署

.net - 检测到包降级警告(dotnet core,vs 2017)

visual-studio-2013 - 为什么Visual Studio阻止我查看.csproj文件,并且有办法强制打开它?

c# - 我应该依赖 .NET 中与异步编程相关的 future 发展吗?